728x90

 JSP에서 에러(Exception)이 발생하면 에러 코드와 함께 에러 페이지를 보여준다.


- 이때 에러 페이지가 아닌 다른 페이지를 보여주자.


- JSP 에는 에러 페이지를 처리하는 방법으로 <%@page errorPage ="error.jsp"%>, <%@page isErrorPage="true" %> 가 있다.


 page 디렉티브 <%@ page %>


- 하지만 JSP 2.0 또는 최신 웹 컨테이너들은 이 기능을 처리하지 못할 수 있다.


- 그렇기 때문에 에러 페이지 처리를 서블릿에서 처리하기 위해 web.xml 에서 처리하는 방법을 사용한다.


<error-page>

<error-code>404</error-code>

<location>/error/404code.jsp</location>

</error-page>


- 위와 같이 web.xml에 기술되어 있으면 404 에러 발생시 404code.jsp 페이지로 이동한다. 이때 요청 페이지는 사용자가 요청한 페이지를 그대로 유지한다.


- 에러페이지인 404code.jsp 를 처리하기 위해서는 404code.jsp 에 아래와 같은 처리가 필요하다.


<%

response.setStatus(HttpServletResponse.SC_OK);

%>


- 이것은 현재 페이지가 정상적으로 응답되는 페이지임을 지정하는 코드다. 이 코드를 생략하면 웹 브라우저는 자체적인 에러 페이지를 표시한다.


- 각 주요 에러코드별로 처리할 에러 페이지를 지정하며, 기술하지 않은 그 외의 에러에 대해서도 처리할 수 있다.





- web.xml 에러 페이지 처리 예


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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

    

    <display-name>TEST</display-name>

    

    <!-- 시작 페이지 -->

    <welcome-file-list>

        <welcome-file>/index.jsp</welcome-file>

    </welcome-file-list>

    

    <!-- error 페이지 -->

    <error-page>

     <error-code>400</error-code>

     <location>/WEB-INF/jsp/common/error/400error.jsp</location>

    </error-page>

    <error-page>

     <error-code>404</error-code>

     <location>/WEB-INF/jsp/common/error/404error.jsp</location>

    </error-page>

    <error-page>

     <error-code>403</error-code>

     <location>/WEB-INF/jsp/common/error/403error.jsp</location>

    </error-page>

    <error-page>

     <error-code>500</error-code>

     <location>/WEB-INF/jsp/common/error/500error.jsp</location>

    </error-page>

    <error-page>

     <exception-type>java.lang.Throwable</exception-type>

     <location>/WEB-INF/jsp/common/error/error.jsp</location>

    </error-page>

</web-app>


출처 : http://hyeonstorage.tistory.com/

728x90

+ Recent posts