Recent Posts
Recent Comments
Link
06-28 05:11
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

web.xml 서블릿 오류 처리 본문

DEV&OPS/Java

web.xml 서블릿 오류 처리

ALEPH.GEM 2022. 6. 20. 11:02

서블릿 오류 처리

오류를 처리할 페이지를 web.xml에 지정하면 오류가 발생하면 해당 페이지로 이동시킵니다.

try-catch와 중복으로 설정한다면 try-catch문이 우선 처리 됩니다.

try-catch문은 해당 블록만 오류를 처리하는 반면 web.xml은 웹 어플리케이션 전체에 대해 처리할 수 있습니다.

web.xml에 <error-page> 태그가 설정되어 있을 때 <error-cod>나 <exception-type>에 지정한 오류가 발생하면 <location>태그에 지정된 오류 페이지가 실행됩니다.

web.xml에 다음과 같은 태그를 추가합니다.

  <error-page>
  	<error-code>404</error-code>
  	<location>/errorHandle</location>
  </error-page>
  <error-page>
  	<exception-type>java.lang.NullPointerException</exception-type>
  	<location>/errorHandle</location>
  </error-page>

이어서 오류를 처리할 errorHandle을 위해 ErrorHandleServlet.java를 작성합니다.

package net.aacii.test;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/errorHandle")
public class ErrorHandleServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		res.setContentType("text/html;charset=UTF-8");
		PrintWriter out = res.getWriter();
		Integer code = (Integer)req.getAttribute("javax.serlvet.error.status.code");
		String message = (String)req.getAttribute("javax.servlet.error.message");
		Object type = req.getAttribute("javax.servlet.error.exception.type");
		Throwable exception = (Throwable)req.getAttribute("javax.servlet.error.exception");
		String uri = (String)req.getAttribute("javax.servlet.error.request_uri");
		
		out.print("<h2>Error Code : "+code+"</h2>");
		out.print("<h2>Error Message : "+message+"</h2>");
		out.print("<h2>Error Type : "+type+"</h2>");
		out.print("<h2>Error Object : "+exception+"</h2>");
		out.print("<h2>Error URI : "+uri+"</h2>");
		out.close();
	}
	
}

없는 URL을 입력하면 404 에러가 나면서 에러 처리 페이지가 열리는 것을 확인해봅시다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'DEV&OPS > Java' 카테고리의 다른 글

JSP 내장 객체  (0) 2022.06.21
JSP  (0) 2022.06.20
리스너 Listener  (0) 2022.06.20
필터 Filter  (0) 2022.06.15
request 상태 정보 유지  (0) 2022.06.15