web.xml에 error-page 설정후 적용되지 않을경우
java.lang.throwable /common/error/error.ng java.lang.NullPointerException /common/error/error.ng java.lang.Exception /common/error/error.ng 404 /common/error/error.ng 400 /common/error/error.ng 500 /common/error/error.ng
IE 가 http 404 status 를 만나게 되면 대부분 로컬에 저장되어있는 다음 페이지를 강제로 보여주더군요
res://C:\WINNT\system32\shdoclc.dll/http_404.htm
<%@ page contentType="text/html; charset=MS949" %> <% response.setStatus(HttpServletResponse.SC_OK); //200 /* Object exObj = req.getAttribute("javax.servlet.error.exception"); String uri = ""; if(uriObj != null) { uri = uriObj.toString(); out.println(uri); out.println("
"); } */ out.print(request.getAttribute("javax.servlet.error.status_code")); out.print("
"); out.print(request.getAttribute("javax.servlet.error.exception_type")); out.print("
"); out.print(request.getAttribute("javax.servlet.error.message")); out.print("
"); out.print(request.getAttribute("javax.servlet.error.exception")); out.print("
"); out.print(request.getAttribute("javax.servlet.error.request_uri")); %>
ERROR PAGE에서 활용하는 방법
${requestScope['javax.servlet.error.status_code']}
javax.servlet.error.status_code:
에러 상태 코드를 말해 주는 정수
javax.servlet.error.exception_type
에러가 생기게 된 예외 형을 지적해 주는 클래스 인스턴스
javax.servlet.error.message
예외 메시지를 말해주는 스트링이며, 예외 컨스트럭터로 보내어 진다.
javax.servlet.error.exception
실제 예외가 없어지면 버릴 수 있는 객체이다.
javax.servlet.error.request_uri
문제를 일으킨 리소스의 URI를 말해주는 스트링이다.
javax.servlet.error.servlet_name
Throwable e = (Throwable)request.getAttribute("javax.servlet.error.exception");
Throwable e1 = (Throwable)request.getAttribute("javax.servlet.jsp.jspException");
오류 페이지에서만 쓸 수 있는 객체 : exception
<%@ page isErrorPage="true" %>
${pageContext.exception}
오류 발생 후 오류 페이지로 이동하지 않고 자체 페이지에서 해결하기 : <c:catch>
<c:catch>
<% int x = 10/0; %>
// 에러가 발생하면 다음을 실행하지 않고 </c:catch>로 곧장 이동한다.
</c:catch>
exception을 속성으로 만들어 에러 메시지 읽기
<c:catch var="myException">
...
</c:catch>
${myException.message}
// 타입이 Throwable이니 message프로퍼티가 있음