[JSP] 예외처리, 예외페이지


  • 예외가 발생한 경우 웹 컨테이너에서 제공하는 기본 예외 페이지가 아닌 직접 지정한 페이지가 보이도록 하는 것

  • web.xml 파일을 이용한 예외 처리

    • web.xml 파일

        <error-page>
            <error-code>에러코드</error-code>
            <location>/에러 처리 페이지 경로</location>
        </error-page>
      
        <!-- ex -->
        <error-page>
            <error-code>404</error-code>
            <location>/error404.jsp</location>
        </error-page>
      


        <error-page>
            <error-code>Exception</error-code>
            <location>/에러 처리 페이지 경로</location>
        </error-page>
      
        <!-- ex -->
        <error-page>
            <error-code>java.lang.NullPointerException</error-code>
            <location>/errorPage.jsp</location>
        </error-page>
      
    • 예외 페이지 : <% response.setStatus(200); %>

  • page 지시자를 이용한 예외 처리

    • 예외가 발생할 페이지 : <%@ page errorPage="~~.jsp" %>

    • 예외 페이지

      • <%@ page isErrorPage="true" %>

        isErrorPage=”true”설정을 하지 않으면 기본값(false)로 설정되어 실행되지 않음

      • <% response.setStatus(200); %>

        response.setStatus(200)을 설정하지 않으면 해당 페이지가 아닌 기본 예외 페이지로 이동하기 때문에 설정해줘야 함, 해당 페이지는 예외가 발생하지 않았다고 설정해주는 것

  • ex)

    • ExceptionTest.jsp

        <%@ page language="java" contentType="text/html; charset=UTF-8"
            pageEncoding="UTF-8" errorPage="ExceptionPage.jsp" %>
        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="UTF-8">
        <title>예외(Exception)</title>
        </head>
        <body>
            <%
                // 의도적으로 예외 만들기
                int i = 100 / 0;
            %>
      
        </body>
        </html>
      
    • ExceptionPage.jsp

        <%@ page language="java" contentType="text/html; charset=UTF-8"
            pageEncoding="UTF-8" isErrorPage="true"%>
        <!DOCTYPE html>
        <html>
        <head>
        <meta charset="UTF-8">
        <title>예외 발생</title>
        </head>
        <body>
            <%
                response.setStatus(200);
                  
                response.setCharacterEncoding("UTF-8");
            %>
            <%-- 에러발생
            <%=
                exception.getMessage()
            %> --%>
                  
            <h3>요청하신 페이지를 찾을 수 없습니다. 
                <br>잠시 후 다시 시도해주세요.</h3>
            <img alt="error" src="img/error_page.png">
        </body>
        </html>
      
    • 실행결과

Categories:

JSP/Servlet