2011. 12. 9. 16:58
반응형
1. web.xml 세팅
<error-page>
   <error-code>401</error-code>
   <location>/error/ExceptionPage.jsp</location>
</error-page>
<error-page>
   <error-code>403</error-code>
   <location>/error/ExceptionPage.jsp</location>
</error-page>
<error-page>
   <error-code>404</error-code>
   <location>/error/ExceptionPage.jsp</location>
</error-page>
<error-page>
   <exception-type>java.lang.NullPointerException</exception-type>
   <location>/error/ExceptionPage.jsp</location>
</error-page>
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/error/ExceptionPage.jsp</location>
</error-page>
<error-page>
   <exception-type>java.lang.Exception</exception-type>
   <location>/error/ExceptionPage.jsp</location>
</error-page>

2. error page 만들기
<div style="width:100%; height:100%; background:#F0F2FB;">
<div style="margin:auto; width:600px; position:relative; top:40%;">
<div style="float:left;"><img src="/images/warning.gif" onDblClick="$('#errorLog').show();"/></div>
<div style="float:left; margin-left:20px;">
<font color="red">시스템에 오류가 발생했습니다. <br /></font>
잠시후 다시 시도해 보시고 지속적인 오류 발생시 관리자에게 문의해 주시기 바랍니다. <br/><br/>
<a href="javascript:history.back();">- 뒤로가기 -</a><br/>
</div>
<div id="errorLog" style="position:relative; clear:both; text-align:left; display:none;">
<pre>
Exception : ${pageContext.exception} ${pageContext.exception.message}
 
  <c:forEach var="st" items="${pageContext.exception.stackTrace}">
  ${st}   </c:forEach>
</pre>
</div>
</div>
</div>  

 
3. 기타 에러페이지 활용

 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프로퍼티가 있음
(참고 출처 : http://eyecandyzero.tistory.com/76 )
 
반응형

'Jsp-Servlet > Jsp' 카테고리의 다른 글

Excel Download 공통단  (1) 2011.11.17
quartz setting (servlet 이용)  (3) 2011.10.31
jstl el 특이한 명령어들..  (4) 2011.01.09
custom tag lib 대략 정리  (1) 2010.08.05
jstl, el, fn 정리  (2) 2010.05.27
Posted by seongsland