-> 블로그 이전

[JSP] 에러 처리

2022. 3. 19. 14:53Language`/JSP (Java Server Page)

에러 페이지

- 실행 도중 Exception이 발생하면, 에러 화면 대신 지정한 에러 페이지를 보여줄 수 있다

## 에러 발생시 보여줄 페이지 ##
<%@ page errorpage = "~~~~~~~" %>

## 에러 처리 페이지 ##
<%@ page isErrorPage = "true" %>

 

처리 우선순위

1) page 디렉티브의 errorPage 속성

2) web.xml 파일의 <exception-type> : 범용 에러 처리

3) web.xml 파일의 <error-code> : 별도 에러 처리

4) WAS가 제공하는 기본 에러 페이지

 

에러 코드

  • 200 : 요청을 정상적으로 처리
  • 307 : 임시로 페이지를 리다이렉트
  • 400 : Client 요청이 잘못됨
  • 401 : 접근 허용 X
  • 404 : 요청한 URL 경로 X
  • 500 : 요청 메소드(GET, POST, ..)를 허용 X
  • 503 : JSP Exception 발생
  • 504 : 서버가 서비스 제공을 못함 (서버측 문제)
 

[Network] HTTP Status Code

1xx : Information Responses Request를 받았고 Process를 계속 진행 주요 Status Code Status Text 100 Continue - 진행 중임을 의미한다 - 현재까지의 진행상태에 문제가 없다 - Client가 계속해서 요청을 하거..

cs-ssupport.tistory.com

 

Example)

## 에러 발생 페이지 ##

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="error/error_NPE.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String value = request.getParameter("name").toUpperCase();
%>
</body>
</html>

 

## 에러 처리 페이지 ##

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isErrorPage="true" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
에러가 발생했습니다.<br>
<%
    out.println("에러 타입 : " + exception.getClass().getName() + "<br>");
    out.println("에러 메시지 : " + exception.getMessage());
%>
</body>
</html>

 

 

에러 코드로 에러 페이지 처리

- web.xml 파일에 아래 양식을 추가한다

<error-page>
    <error-code>에러코드</error-code>
    <location>에러 페이지 URI</location>
</error-page>

 

Exception 타입별로 에러 페이지 처리

- web.xml 파일에 아래 양식을 추가한다

<error-page>
    <exception-type>자바 Exception 타입</exception-type>
    <location>에러 페이지 URI</location>
</error-page>

 

>> page 디렉티브에 errorPage를 지정해주지 않아도 web.xml 파일에 존재하는 <error-page>에 따라서 에러 페이지가 나타난다