[JSP 실습정리]지시어- errorPage 실습

J의 괴발 공부·2023년 8월 9일
0

java

목록 보기
3/13

JSP 페이지의 구성 요소

-지시어(Directive): page, include, taglib
-스크립트: 선언부, 스크립트릿, 표현식
-기본 객체(Implicit Object)
-표현언어(Expression Language)
-표준 태그 라이브러리(JSTL)

그 중, 지시어(Directive)란?
지시어는 해당하는 JSP 파일의 속성을 기술하는 곳으로 JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다.
즉, 웹 브라우저가 요청한 JSP 페이지가 실행될 때 필요한 설정 정보를 지정하기 위해 사용!!
[형식]
<%@ 디렉티브이름 속성1= "속성 값1" 속성2= "속성 값2" . . . %>

지시어- page 속성 중 에러페이지 관련한 실습을 정리!!!

자바에서는 에러 발생을 쉽게 알기 위해 try-catch문을 많이 사용한다.
같은 개념으로 jsp에서는,
errorPage : 오류가 발생할 때 호출할 페이지를 지정.
isErrorPage : false(기본값), 오류만 처리하는 페이지로 지정.

실습

페이지는 errorPage, isErrorPage 이용할거라서 2파일로~

error_test.jsp파일

->errorPage 사용

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<!-- 에러페이지 걸기 -->
<%@ page errorPage="error_page.jsp" %>
    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp 파일 실행 시 에러 관련 예제</title>
</head>
<body>
	<div style="text-align: center">
		<h2>error_test.jsp 페이지</h2>
		<hr>
		<%= 20/0 %>
	</div>
</body>
</html>

설명: <%= 20/0 %> 표현식 안에 값은 20을 0으로 나눌수가 없기때문에 분명 오류가 날것이다.
그래서 에러페이지를 지시어를 통해 걸었다. -> <%@ page errorPage="error_page.jsp" %>
에러페이지="에러페이지가 있는 파일명"
에러를 쉽게 알려줄 수 있게 페이지자체로(파일) 만들어버림.
그래서 오류가 날 것같은 곳에 저렇게 에러페이지를 걸어버리면 된다!

error_page.jsp 파일

-> isErrorPage 사용

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 추가 -->
<%@ page isErrorPage="true" %>

<!-- 추가 -->
<jsp:useBean id="now" class="java.util.Date"/>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>에러 처리할 페이지- error_page.jsp</title>
</head>
<body>
	<div>
		<h2>에러를 담당하는 페이지</h2>
		<hr>
		<table>
			<tr width=100% bgcolor="greenyellow">
				<td>
					웹프로그램에서 에러 발생함!<br>
					빠른시일내로 복구!
				</td>
			</tr>
			<tr>
				${now}<p>
				요청실패 URI: ${pageContext.errorData.requestURI}<br>
				상태코드: ${pageContext.errorData.statusCode}<br>
				예외유형: ${pageContext.errorData.throwable}
				</p>
			</tr>
		</table>
	</div>
</body>
</html>

해당 페이지는 에러를 잡는 페이지이다. isErrorPage의 기본값은 false로 셋팅되어 있기에
<%@ page isErrorPage="true" %> <- isErrorPage는 true이다 라고 지시어를 통해 표현!
true로 해놔야지 오류가 날 페이지를 실행하였을때, 오류를 알려줄 수 있다!

[결과]

profile
괴발자가 될것인가, 개발자가 될것인가?

0개의 댓글