-지시어(Directive): page, include, taglib
-스크립트: 선언부, 스크립트릿, 표현식
-기본 객체(Implicit Object)
-표현언어(Expression Language)
-표준 태그 라이브러리(JSTL)
그 중, 지시어(Directive)란?
지시어는 해당하는 JSP 파일의 속성을 기술하는 곳으로 JSP 컨테이너에게 해당 페이지를 어떻게 처리해야 하는지 전달하기 위한 내용을 담고 있다.
즉, 웹 브라우저가 요청한 JSP 페이지가 실행될 때 필요한 설정 정보를 지정하기 위해 사용!!
[형식]
<%@ 디렉티브이름 속성1= "속성 값1" 속성2= "속성 값2" . . . %>
자바에서는 에러 발생을 쉽게 알기 위해 try-catch문을 많이 사용한다.
같은 개념으로 jsp에서는,
errorPage : 오류가 발생할 때 호출할 페이지를 지정.
isErrorPage : false(기본값), 오류만 처리하는 페이지로 지정.
페이지는 errorPage, isErrorPage 이용할거라서 2파일로~
->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" %>
에러페이지="에러페이지가 있는 파일명"
에러를 쉽게 알려줄 수 있게 페이지자체로(파일) 만들어버림.
그래서 오류가 날 것같은 곳에 저렇게 에러페이지를 걸어버리면 된다!
-> 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로 해놔야지 오류가 날 페이지를 실행하였을때, 오류를 알려줄 수 있다!