JSP, 톰캣 에러 처리 설정
JSP에서는 에러가 발생했을때 처리를 위한 세 가지 설정 방법을 지원하고 있습니다.

1. JSP <%@ page %> 디렉티브의 errorPage 속성으로 에러 발생시 처리할 페이지 경로를 지정합니다.

2. web.xml의 <error-code> 태그를 통해 HTTP 응답 코드별로 처리할 페이지 경로를 지정합니다.

3. web.xml의 <exception-type> 태그를 통해 발생한 Exception 타입별 처리 페이지 경로를 지정합니다.



설정 중복시 우선 순위
이 세가지 설정을 모두 적용하였을때 특정 조건의 에러 발생시 설정이 중복될 수 있습니다. 예를 들어 NullPointerException이 발생했을 경우에는 다음과 같은 우선순위를 참고하여 절차대로 에러 처리 설정을 따르게 됩니다.

1. NullPointerException이 발생하고 page 디렉티브의 errorPage 설정이 되어 있으면 해당 설정에 따라 처리할 에러 페이지를 보여줍니다.

2. 만약 errorPage 설정이 없는 경우에는 <exception-type> 태그에 NullPointerException 타입의 예외 처리 설정이 되어있으면 <location> 태그에 명시된 경로의 페이지를 보여줍니다.

3. <exception-type> 설정이 되어 있지 않다면 <error-code> 설정을 참고하여 지정된 페이지의 에러 페이지를 보여줍니다. NullPointerException의 경우 WAS에서는 서버 내부 오류(Internal Error)로 판단하여 HTTP 응답 코드 500번을 응답할 것이므로 <error-code>500</error-code> 설정에 따라 맵핑된 경로를 사용자에게 보여주게 될 것입니다.

4. 1 ~ 3의 설정이 모두 되어 있지 않은 경우에는 WAS 기본 에러 페이지를 보여줍니다. 



응용 방법
1. 만약 특정 JSP만의 에러처리 페이지가 필요한 경우 page 디렉티브의 errorPage 속성을 사용합니다.
2. 일일이 JSP 페이지마다 errorPage 설정을 해줄수는 없기에 <error-code> 태그를 이용하여 응답코드별 에러처리 페이지를 web.xml에 설정해 둡니다.
3. 특정 예외만의 에러 처리가 필요한 경우에는 <exception-type> 태그를 사용합니다. 예를 들어 특정 라이브러리나 특정 기능을 사용하는 모듈등을 사용할때 라이브러리만의 예외가 발생한다든가 할 때 유용할 수 있습니다.
 
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,