웹 개발/에러 해결

JSP 에러 페이지 간단하게 처리하기

희랍인 조르바 2018. 2. 28. 16:40

난 초급개발자라 최대한 간단하고 이해하기 쉬운 코드가 좋아서


몇가지 에러페이지 처리 방법이 있는 것 같았지만,


내가 썼던 방법만 기록해두기로 한다.


먼저 web.xml에서 설정한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<web-app>
    ...중략    
    <!--error page -->
    <error-page>
        <error-code>404</error-code>
        <location>/WEB-INF/views/error/errorPage.jsp</location>
    </error-page>
    <error-page>
        <error-code>403</error-code>
        <location>/WEB-INF/views/error/errorPage.jsp</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/WEB-INF/views/error/errorPage.jsp</location>
    </error-page>
    <error-page>
        <error-code>503</error-code>
        <location>/WEB-INF/views/error/errorPage.jsp</location>
    </error-page>
    <error-page>
        <error-code>400</error-code>
        <location>/WEB-INF/views/error/errorPage.jsp</location>
    </error-page>
    <error-page>
        <error-code>405</error-code>
        <location>/WEB-INF/views/error/errorPage.jsp</location>
    </error-page>
 
</web-app>
cs






에러마다 jsp를 따로 만들어주면 페이지가 많아져서 번잡스러울 것 같아 error code 받는 법을 찾은 다음,


jstl 태그로 errorPage.jsp에서 한 번에 처리했다.




<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ERROR PAGE</title>
</head>
<body>
    <center><h1>에러가 발생했습니다.</h1></center>
    <c:if test="${requestScope['javax.servlet.error.status_code'] == 400}">
        <center><p>400 에러가 발생했습니다.</p></center>
    </c:if>
    <c:if test="${requestScope['javax.servlet.error.status_code'] == 403}">
        <center><p>403 에러가 발생했습니다.</p></center>
    </c:if>
    <c:if test="${requestScope['javax.servlet.error.status_code'] == 404}">
        <center><p>404 에러가 발생했습니다.</p></center>
    </c:if>
    <c:if test="${requestScope['javax.servlet.error.status_code'] == 405}">
        <center><p>405 에러가 발생했습니다.</p></center>
    </c:if>
    <c:if test="${requestScope['javax.servlet.error.status_code'] == 500}">
        <center><p>500 에러가 발생했습니다.</p></center>
    </c:if>
    <c:if test="${requestScope['javax.servlet.error.status_code'] == 503}">
        <center><p>503 에러가 발생했습니다.</p></center>
    </c:if>
</body>
</html>





만약 500 에러가 뜨면 요렇게 나온다.