본문 바로가기
프로그래밍 놀이터/Web

Chap 08. 에러 처리

by 돼지왕 왕돼지 2015. 1. 10.
반응형
Chap 08. 에러 처리


* 에러 페이지 지정하기.


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


exception 이 발생하면 errorPage 를 통해 지정한 error page 가 보여진다.




* 에러 페이지 작성하기.


다른것은 동일하나 page directive 를 통해 아래와 같이 지정해주어야 한다.


<%@ page isErrorPage = "true" %>


isErrorPage 로 지정된 jsp 는 exception 기본 객체를 사용할 수 있다.

exception 기본 객체는 error page 에서만 사용할 수 있다.


exception 기본 객체는 발생한 exception 에 접근한다.


cf) 익스플로러는 다음의 경우 자체적으로 제공하는 오류 메세지 화면을 출력한다.

응답의 상태 코드가 400, 404나 500 등 에러코드이며, 전체 응답 결과 데이터의 길이가 513 바이트 보다 작을 때.


따라서 익스플로러에서도 custom error 페이지를 보여주고 싶다면 주석 등을 넣어 513 바이트보다 길게 작성해야 한다.




* 응답 상태 코드별로 에러 페이지 지정하기.


web.xml 설정을 통해, 응답 상태 코드별로 에러 페이지를 지정할 수 있다.


<web-app ...>

<error-page>

<error-code>에러코드</error-code>

<location>에러페이지 URI</location>

</error-page>

</web-app>


web.xml 로 설정해준 error page 의 경우 page directive 를 통해 지정해주지 않아도 된다.




* Exception 타입별로 에러 페이지 지정하기.


마찬가지로 web.xml 설정을 통해 가능하다.


<error-page>

<exception-type>java.lang.NullPointerException</exception-type>

<location>/error/errorNullPointer.jsp</location>

</error-page>


마찬가지로 error page directive 가 필요 없다.




* 에러 페이지의 우선 순위 및 에러 페이지 지정 형태


에러 페이지의 우선순위는 다음과 같다.


1. page directive 의 errorPage 속성에서 지정한 에러 페이지

2. web.xml 의 exception-type 에서 지정한 에러 페이지

3. web.xml 의 error-code 를 통해 지정한 에러 페이지

4. 기본 에러 페이지.




* 버퍼와 에러 페이지의 관계


에러가 발생하기 전에 버퍼가 플러시되면, 에러가 발생했어도 성공한 것으로 간주될 수 있다.

따라서 버퍼가 플러시 되는 시점 이후 에러가 발생할 수 있다면 버퍼 크기를 늘려야 한다.








반응형

댓글