코딩항해기

[JSP] xml 파일로 error 페이지 설정하기 본문

JSP

[JSP] xml 파일로 error 페이지 설정하기

miniBcake 2024. 8. 14. 17:18

 

.xml ( eXtensible Markup Language)

웹에서 데이터를 전송하기 위해 미리 약속해둔 방식으로 만들어진 문서이다.

톰캣에서는 WEB-INF 하위에 web.xml 파일이 있다면, 해당 파일을 참고하여 설정한다.

web.xml 파일에는 스키마(골격, 설정)가 필요하기 때문에 루트 엘리먼트로 web-app을 작성한다.

 

web-app

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
</web-app>

 

 

이 web.xml 파일에서 error 발생시 연결할 페이지를 설정하기 위해서는 관련 태그를 알아야한다.

<error-page></error-page> error 페이지를 설정하기 위해 사용하는 태그로, 하위에 <error-code><exception-type><location>을 사용할 수 있다.
<error-code></error-code> 에러코드 작성한다. (404, 500 ...)
<exception-type></exception-type> 에러 자료형 작성한다. (최상위 에러 : java.lang.Throwable)
<location></location> <error-code><exception-type>에 명시된 에러가 발생할 때 이동할 페이지를 작성한다.

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
	<error-page>
		<error-code>404</error-code>
		<location>/error/error.jsp</location>
	</error-page>
	<error-page>
		<error-code>500</error-code>
		<location>/error/error.jsp</location>
	</error-page>
	<error-page>
		<exception-type>java.lang.Throwable</exception-type>
		<location>/error/error.jsp</location>
	</error-page>
</web-app>

 

404 에러가 발생하면 에러 폴더에 있는 에러페이지로 이동한다.

500 에러가 발생하면 에러 폴더에 있는  에러페이지로 이동한다.

최상위 에러 타입인 Throwable에 해당하는 에러가 발생하면 에러 폴더에 있는  에러페이지로 이동한다.

Throwable에러가 발생하면 500 페이지가 뜨므로, 이 경우 500 error-code는 잡지 않아도 된다.

(중복된 코드)

 

참고로 에러 jsp 파일 상단에 isErrorPage="true" 속성을 추가해 에러페이지라는 것을 명시하는 것이 좋다.

'JSP' 카테고리의 다른 글

[JSP] Controller Servlet  (0) 2024.08.19
[JSP] 내장 객체 (request, session, application)  (0) 2024.08.17
[JSP] 커스텀 태그, 사용자 지정 태그  (0) 2024.08.14
[JSP] EL식, JSTL  (0) 2024.08.14
[JSP] header, footer 넣기  (0) 2024.08.09