본문 바로가기

BackEnd/JSP

[JSP 웹 프로그래밍] 예외 처리 2 (web.xml 파일을 이용한 예외 처리)

728x90
반응형

1. web.xml 파일을 이용한 예외 처리
   ▷ web.xml 파일을 통해 오류 상태와 오류 페이지를 보여주는 방법
   ▷ <error-page>…</error-page> 요소 내에 처리할 오류 코드나 오류 유형 및 오류 페이지를 호출

   ▷ web.xml 파일은 웹 애플리케이션의 /WEB-INF/폴더에 있어야 함

 

◎ 오류 코드로 오류 페이지 호출하기
   ▷ 오류 코드는 웹 서버가 제공하는 기본 오류 페이지에 나타나는 404, 500과 같이 사용자의 요청이 올바르지 않을 때

        출력되는 코드로 응답 상태 코드라고도 함 
   ▷ JSP 페이지에서 발생하는 오류가 web.xml 파일에 설정된 오류 코드와 일치하는 경우 오류 코드와 오류 페이지를 보여줌

◎ web.xml 파일에 오류 코드와 오류 페이지를 설정하는 형식

 

 

◎ web.xml 파일에 오류 코드로 오류 페이지 호출하기

1. web.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
	... (생략) ...
	<error-page>
		<error-code>500</error-code>
		<location>/ch11/errorCode_error.jsp</location>
	</error-page>
</web-app>​


500번의 에러가 발생하면 errorCode_error.jsp가 실행하도록 만들어줍니다.


2. errorCode.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Exception</title>
</head>
<body>
	<form action="errorCode_process.jsp" method="post">
		<p> 숫자1 : <input type="text" name="num1">
		<p> 숫자2 : <input type="text" name="num2">
		<input type="submit" value="나누기">
	</form>
</body>
</html>​

 

 

3. errorCode_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Exception</title>
</head>
<body>
	<%
		String num1 = request.getParameter("num1");
		String num2 = request.getParameter("num2");
		int a = Integer.parseInt(num1);
		int b = Integer.parseInt(num2);
		int c = a / b;
		out.print(num1 + " / " + num2 + " = " + c);
	%>
</body>
</html>​


정상적인 값(몫)이 출력됩니다.

4. errorCode_error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Exception</title>
</head>
<body>
	errorCode 505 오류가 발생하였습니다.
</body>
</html>​


숫자2가 0이면 'errorCode 505  오류가 발생하였습니다.' 라는 문구가 나타납니다.

 

 

◎ 예외 유형으로 오류 페이지 호출하기
   ▷ 예외 유형에 따른 오류 페이지 호출 방법은 JSP 페이지가 발생시키는 오류가 web.xml 파일에 설정된 예외 유형과

        일치하는 경우 예외 유형과 오류 페이지를 보여줌

 

◎ web.xml 파일에 예외 유형과 오류 페이지를 설정하는 형식

 

 

◎ web.xml 파일에 예외 유형으로 오류 페이지 호출하는 예제

1. web.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
	...(생략)...
	<error-page>
		<exception-type>java.lang.Exception</exception-type>
		<location>/ch11/exceptionType_error.jsp</location>
	</error-page>
</web-app>​


Exception 모든 종류의 예외가 발생하면 exceptionType_error.jsp가 실행되도록 만들어줍니다.


2.exceptionType.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Exception</title>
</head>
<body>
	<form action="errorCode_process.jsp" method="post">
		<p> 숫자1 : <input type="text" name="num1">
		<p> 숫자2 : <input type="text" name="num2">
		<input type="submit" value="나누기">
	</form>
</body>
</html>​

위의 예제와 같은 입력 화면이 출력됩니다.


3. exceptionType_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Exception</title>
</head>
<body>
	<%
		String num1 = request.getParameter("num1");
		String num2 = request.getParameter("num2");
		int a = Integer.parseInt(num1);
		int b = Integer.parseInt(num2);
		int c = a / b;
		out.print(num1 + " / " + num2 + " = " + c);
	%>
</body>
</html>​

정상적인 값(몫)이 출력됩니다.


4. exceptionType_error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Exception</title>
</head>
<body>
	exception type 오류가 발생하였습니다.
</body>
</html>​

숫자2가 0이면 'exception type 오류가 발생하였습니다.' 라는 문구가 나타납니다.

 

web.xml 파일을 이용해서 해당 예외가 발생하면 원하는 페이지가 나타날 수 있도록 화면을 출력합니다.

 

web.xml로 코드도 줄이고 로그인, 예외처리 기능도 하면 훨씬 편리하겠네요!

 

마지막으로 남은 예외처리 문법도 배워보죠!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형