본문 바로가기

Programming/JSP

JSP에서 컴파일 에러 (Compile Error) 혹은 런타임 예외 (Runtime Exception) 발생 시 원하는 페이지 보여주기


JSP에서 컴파일 에러 혹은 런타임 예외 발생 시

디폴트로 HTTP Status Code, Java Stack Trace 등을 보여준다.

이는 user-friendly하지 않을 뿐만 아니라

코드가 노출되는 등 보안 관점에서도 유익하지 못하다.

디폴트 에러 페이지 대신 원하는 페이지를 보여주기 위해 web.xml에 다음을 추가한다.

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

이는 예외가 발생한 경우를 핸들링하기 때문에 404의 경우에는 해당되지 않는다.

예외와 무관하게 HTTP Status Code가 에러인 경우에 대한 처리는 다음과 같이 할 수 있다.

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

Stack Trace는 다음에서 확인할 수 있다.

$CATALINA_HOME/logs/catalina.out  

에러 페이지 내에 다음을 추가하면 설정과 상관없이 디폴트 에러 페이지에 나오던 내용을 볼 수 있다.

<% page isErrorPage="true" %>

별도의 에러 페이지를 만들고 디폴트 에러 페이지의 내용이 나오게 할 일은 없을테니

다른 용도가 있을 듯한데 귀찮아서 패스.

혹시 아시는 분이 있다면 코멘트 부탁드립니다 :-)

Reference:
http://stackoverflow.com/questions/2748220/how-to-show-user-friendly-error-page-instead-of-tomcat-log-with-stack-trace-in-b