[서블릿/JSP] JSP, 톰캣 에러 처리 설정 중복시 우선 순위
JSP, 톰캣 에러 처리 설정
JSP에서는 에러가 발생했을때 처리를 위한 세 가지 설정 방법을 지원하고 있습니다.
-
JSP
<%@ page %>디렉티브의 errorPage 속성으로 에러 발생시 처리할 페이지 경로를 지정합니다. → [서블릿/JSP] JSP 예외 처리하기. isErrorPage 및 errorPage 옵션. -
web.xml의<error-code>태그를 통해 HTTP 응답 코드별로 처리할 페이지 경로를 지정합니다. → [서블릿/JSP] HTTP 응답 상태 코드별로 처리할 JSP 지정하기 -
web.xml의<exception-type>태그를 통해 발생한 Exception 타입별 처리 페이지 경로를 지정합니다. → [서블릿/JSP] Exception 타입에 따른 오류 처리 JSP 맵핑하기
설정 중복시 우선 순위
이 세가지 설정을 모두 적용하였을때 특정 조건의 에러 발생시 설정이 중복될 수 있습니다. 예를 들어 NullPointerException이 발생했을 경우에는 다음과 같은 우선순위를 참고하여 절차대로 에러 처리 설정을 따르게 됩니다.
-
NullPointerException이 발생하고 page 디렉티브의 errorPage 설정이 되어 있으면 해당 설정에 따라 처리할 에러 페이지를 보여줍니다. -
만약 errorPage 설정이 없는 경우에는
<exception-type>태그에NullPointerException타입의 예외 처리 설정이 되어있으면<location>태그에 명시된 경로의 페이지를 보여줍니다. -
<exception-type>설정이 되어 있지 않다면<error-code>설정을 참고하여 지정된 페이지의 에러 페이지를 보여줍니다.NullPointerException의 경우 WAS에서는 서버 내부 오류(Internal Error)로 판단하여 HTTP 응답 코드 500번을 응답할 것이므로<error-code>500</error-code>설정에 따라 맵핑된 경로를 사용자에게 보여주게 될 것입니다. -
1 ~ 3의 설정이 모두 되어 있지 않은 경우에는 WAS 기본 에러 페이지를 보여줍니다.

응용 방법
-
만약 특정 JSP만의 에러처리 페이지가 필요한 경우 page 디렉티브의 errorPage 속성을 사용합니다.
-
일일이 JSP 페이지마다 errorPage 설정을 해줄수는 없기에
<error-code>태그를 이용하여 응답코드별 에러처리 페이지를web.xml에 설정해 둡니다. -
특정 예외만의 에러 처리가 필요한 경우에는
<exception-type>태그를 사용합니다. 예를 들어 특정 라이브러리나 특정 기능을 사용하는 모듈등을 사용할때 라이브러리만의 예외가 발생한다든가 할 때 유용할 수 있습니다.
'Servlet&Jsp' 카테고리의 다른 글
| [서블릿/JSP] <jsp:include> 액션 태그 사용법. <jsp:param> 으로 데이터 넘기기. 데이터 공유하기 (0) | 2018.08.02 |
|---|---|
| [서블릿/JSP] errorPage 설정시 버퍼 사이즈 설정 주의사항 (0) | 2018.08.02 |
| [서블릿/JSP] Exception 타입에 따른 오류 처리 JSP 맵핑하기 (0) | 2018.08.01 |
| [서블릿/JSP] HTTP 응답 상태 코드별로 처리할 JSP 지정하기 (0) | 2018.08.01 |
| [서블릿/JSP] Internet Explorer에서 jsp 500 에러 출력시 "웹 사이트에서 페이지를 표시할 수 없습니다" 표시되는 문제 (0) | 2018.07.30 |
도로락
WriterIT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그