[JSP] 에러페이지 지정하기

- JSP는 실행 도중 익셉션이 발생하면 위의 에러화면 대신에 지정한 JSP 페이지를 보여줄 수 있는 기능을 제공하고 있습니다.

- 익셉션 발생 시 보여줄 JSP 페이지는 page 디렉티브의 errorPage 속성을 사용해서 지정합니다.

<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page errorPage = "/error/viewErrorMessage.jsp" %>
<html>
<head><title>파라미터 출력</title></head>
<body>

name 파라미터 값: <%= request.getParameter("name").toUpperCase() %>

</body>
</html>

 2번째 줄을 보면 page 디렉티브에 errorPage 속성에 jsp 주소를 값으로 넣으면 해당 페이지를 에러페이지로 사용할 수 있게 됩니다.

에러페이지 작성하기

- 에러페이지를 지정한다고해서 무작정 해당 페이지가 에러페이지로 사용할 수 있는것이 아닙니다. jsp 자신이 에러페이지라는 것을 인식할 수 있도록 해야합니다.

- 에러페이지 jsp 파일의 page 디렉티브에 isErrorPage 속성을 true로 선언해주면 해당 jsp는 자신이 에러페이지라는 것을 알게됩니다.

 

<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page isErrorPage = "true" %>
<html>
<head><title>에러 발생</title></head>
<body>

요청 처리 과정에서 에러가 발생하였습니다.<br>
빠른 시간 내에 문제를 해결하도록 하겠습니다.
<p>
에러 타입: <%= exception.getClass().getName() %> <br>
에러 메시지: <b><%= exception.getMessage() %></b>
</body>
</html>
<!--
에러페이지 용량 채우기용 주석입니다.에러페이지 용량 채우기용 주석입니다.
에러페이지 용량 채우기용 주석입니다.에러페이지 용량 채우기용 주석입니다.
에러페이지 용량 채우기용 주석입니다.에러페이지 용량 채우기용 주석입니다.
에러페이지 용량 채우기용 주석입니다.에러페이지 용량 채우기용 주석입니다.
에러페이지 용량 채우기용 주석입니다.에러페이지 용량 채우기용 주석입니다.
에러페이지 용량 채우기용 주석입니다.에러페이지 용량 채우기용 주석입니다.
-->

- html 태그 아래에 달린 주석은 IE일때 에러페이지의 크기가 512 바이트가 넘지 않을때 IE 자체 에러페이지를 반환하게 됩니다. 그래서 512 바이트를 넘도록 지정한 에러페이지가 뜨도록 인위적으로 주석으로 바이트수를 채워넣은 경우입니다. (IE는 에러페이지 jsp의 파일크기가 512 바이트가 넘어야 한다.)

 

응답상태별(예 404, 500 등)로 에러페이지를 지정하기

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

	<error-page>
		<error-code>404</error-code>
		<location>/error/error404.jsp</location>
	</error-page>

	<error-page>
		<error-code>500</error-code>
		<location>/error/error500.jsp</location>
	</error-page>

	<error-page>
		<exception-type>java.lang.NullPointerException</exception-type>
		<location>/error/errorNullPointer.jsp</location>
	</error-page>

</web-app>

- 첫번째 error-page 태그는 404 에러코드를잡아 error 폴더의 error404.jsp 파일을 실행합니다.

- 두번째는 마찬가지로 500에러코드를 잡아 error폴더의 error500.jsp 파일을 실행합니다.

- 세번째 error-page 태그는 exception의 종류를 잡아서 exception 종류별로 실행할 에러페이지를 지정할 수도 있습니다.

댓글

Designed by JB FACTORY