JSP/Servlet 웹 애플리케이션에서 web.xml 활용한 에러 페이지 설정
이 글에서는 JSP/Servlet 기반의 웹 애플리케이션에서 web.xml 파일을 활용하여 에러 페이지를 설정하는 방법에 대해 알아봅니다. 다양한 HTTP 상태 코드에 대해 사용자에게 친화적인 에러 메시지를 표시하는 방법에 대해 알아봅니다.
1. web.xml 파일의 역할
web.xml 파일은 웹 애플리케이션의 설정 정보를 담고 있는 디스크립터 파일입니다. 이 파일을 통해 서블릿, 필터, 리스너 등을 설정할 수 있으며, 특정 에러가 발생했을 때 사용자에게 보여줄 에러 페이지를 정의할 수 있습니다.
2. 에러 페이지 설정하기
먼저, web.xml 파일에 통합 에러 페이지를 설정합니다. 모든 오류 코드를 하나의 error.jsp로 처리하도록 설정합니다.
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>위 설정에서 404, 500 등의 특정 오류 코드는 물론, 모든 예외(java.lang.Exception)에 대해서도 error.jsp 페이지로 이동하도록 설정했습니다.
▼ web.xml 에러 페이지 설정

3. error.jsp 페이지 작성
이제 error.jsp 페이지에서 상태 코드를 읽어 다양한 오류 메시지를 표시할 수 있도록 코드를 작성합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>에러 페이지</title>
</head>
<body>
<h1>오류 발생</h1>
<%
// 오류 코드와 오류 메시지를 읽어온다.
Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
String errorMessage = (String) request.getAttribute("javax.servlet.error.message");
if (statusCode != null) {
out.println("<p>오류 코드: " + statusCode + "</p>");
out.println("<p>오류 메시지: " + errorMessage + "</p>");
// 상태 코드에 따라 다른 메시지 출력
if (statusCode == 404) {
out.println("<p>페이지를 찾을 수 없습니다.</p>");
} else if (statusCode == 500) {
out.println("<p>서버 내부 오류가 발생했습니다.</p>");
} else {
out.println("<p>예기치 않은 오류가 발생했습니다.</p>");
}
} else {
out.println("<p>알 수 없는 오류가 발생했습니다.</p>");
}
%>
<p><a href="/">홈으로 돌아가기</a></p>
</body>
</html>이 코드에서는 request.getAttribute("javax.servlet.error.status_code")를 사용하여 오류 상태 코드를 가져오고, 이를 기반으로 적절한 메시지를 출력합니다. isErrorPage="true" 지시어를 사용하여 이 페이지가 에러 페이지임을 명시하고, request 객체를 통해 오류 정보를 가져옵니다.
▼ 404 오류인 경우 실행 결과

☞ 이러한 설정을 통해 다양한 오류 코드에 대해 하나의 JSP 파일에서 에러를 처리할 수 있습니다. web.xml 설정과 error.jsp 페이지를 잘 조합하면, 웹 애플리케이션에서 발생할 수 있는 여러 오류에 대해 효율적으로 대응할 수 있습니다.
관련 이전 게시글
- JSP 에러 처리 방법: errPage와 isErrorPage 속성 활용법
- JSP 내장 객체 사용법: request와 response
- JSP 내장 객체 사용법: session과 application
- JSP 액션 태그: include와 forward 사용법
- JSP와 Servlet 소개 및 활용도
이 글이 도움이 되셨다면 공유 부탁 드립니다.



