ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Camel][JSP] 에러(Error) 처리, 에러 페이지 (Error Page)
    JSP 2020. 3. 12. 15:49

    1. 에러 페이지(Error Page) 지정

     JSP 페이지에서 요청을 처리하면서 Exception이 발생하게되면 에러 화면을 확인할 수 있습니다. 이러한 에러 화면을 사용자에게 좀 더 알아보기 쉽운 에러 페이지로 만들어야 합니다.

     

    1-1. page 디렉티브의 errorPage 속성을으로 지정하는 방법

     사용자에게 에러가 발생했을 때 보여줄 JSP 페이지는 page 디렉티브의 errorPage 속성을 사용해서 지정할 수 있습니다. 에러 페이지에 해당하는 JSP 페이지는 page 디렉티브의 isErrorPage 속성의 값이 "true"로 지정되어야 합니다. 그래야만 exception 기본객체를 사용할 수 있기 때문입니다. 

    <%@ page errorPage="/error/error1.jsp" %>

     

    error1.jsp

    <%@ page contentType="text/html; charset=utf-8" %>
    <%@ page isErrorPage="true" %>
    <html>
    <head></head>
    <body>
    	Error!
         	please wait a second...
    <p>
    Error Type : <%= exception.getClass().getName() %> <br>
    Error Message : <%= exception.getMessage() %> 
    </body>
    </html>

     

     단, 크롬과 달리 인터넷 익스플로러의 경우에는 응답 상태의 코드가 400, 404, 500 등의 에러코드이고 전체 응답 결과 데이터의 길이가 513Byte 보다 작을 경우 자체적으로 제공하는 에러 메시지를 포함하고 있는 화면을 출력합니다. 

     

     그렇기 때문에 인터넷 익스플로러에서도 작성한 에러페이지의 내용이 동일하게 출력되길 원한다면 에러 페이지가 생성하는 응답 결과 데이터의 크기가 513Byte 이상어야 합니다.   

     

    1-2. 응답 상태 코드 별로 지정하는 방법

     JSP에서는 WEB-INF/web.xml 파일에서 각각의 응답 상태 코드 별로 보여줄 페이지를 지정할 수 있습니다. 지정 방법은 아래와 같습니다. 

     

    web.xml

    <?xml version="1.0" encoding="utf-8"?>
    
    <web-app ...>
    	...
        	<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>
        	...
    </web-app>

     웹 어플리케이션에서 가장 자주 발생하는 에러 코드는 404와 500입니다. 에러 코드 404는 존재하지 않는 페이지를 요청할 경우 사용하게 되고, 에러 코드 500은 JSP 코드가 잘못 작성되었거나 DB와의 연결 실패와 같이 서버에서 예상하지 못한 에러가 발생했을 때 사용됩니다. 그 외에도 주요 응답 상태 코드는 아래와 같습니다. 

     

    • 200 - 요청이 정삭적으로 처리됨
    • 307 - 임시로 페이지가 리다이렉트됨
    • 400 - 클라이언트의 요청이 잘못된 구문으로 구성됨
    • 401 - 접근이 허용되지 않음
    • 404 - 지정된 URL을 처리하기 위한 자원이 존재하지 않음
    • 405 - 요청된 메서드는 허용되지 않음
    • 500 - 서버 내부 에러, JSP에서 Exception이 발생하는 경우를 포함
    • 503 - 서버가 일시적으로 서비스를 제공할 수 없음. 과부하가 걸리거나 임시보수중일 때 해당됨.

     

    1-3. Exception 타입 별로 지정하는 방법

     Exception 타입 별로 에러 페이지를 지정하는 방법은 위에서 설명한 응답 상태 코드 별 페이지 지정과 거의 유사합니다. <error-code> 태그 대신에 <exception-type> 태그를 사용하면 됩니다. 

     

    web.xml

    <?xml version="1.0" encoding="utf-8"?>
    
    <web-app ...>
    	...
        	<error-page>
        		<exception-page>java.lang.NullPointerException</exception-page>
            	<location>/error/errorNullPointer.jsp</location>
        	</error-page>
        	...
    </web-app>

     

     

     

    댓글

Camel`s Tistory.