본문 바로가기

JSP 웹 프로그래밍/수업내용

[JSP 웹 프로그래밍] 예외처리

1. 예외 처리의 개요

  예외처리

 

 프로그램이 처리되는 동안 특정한 문제가 발생했을때 처리를 중단하고 다른 처리를 하는 것으로 오류처리라고도 함

웹사이트를 이용하다가 주소를 잘못 입력하면 오류페이지를 보게됨

 - 웹서버가 제공하는 오류페이지로 해당 페이지에 발생항 오류, 디렉터리 구조, 콤켓 버전등의정보가 나타나 있기 때문에     웹 보안이 취약하여 쉽게 해킹 당할 수 있음

 

 

웹 애플리케이션 실행 도중에 발생할 수 있는 오류에 대비한 예외 처리 코드를 작성하여 비정상적인 종료를 막을 수 있음

 

 예외 처리 방법의 종류


2. page 디렉티브 태그를 이용한 예외 처리

ErrorPage 속성으로 오류 페이지 호출하기

errorPage 속성

 - 오류 페이지를 호출하는 page 디렉티브 태그의 속성

 - 오류 페이지를 호출하는 page 디렉티브 태그의 속성

JSP 페이지가 실행되는 도중에 오류가 발생하면 웹 서버의 기본 오류 페이지§ 를 대신하여 errorPage 속성에 설정한 페이지가 오류 페이지로 호출

 

isErrorPage 속성으로 오류 페이지 만들기

 IsErrorPage 속성

 - 현재 JSP 페이지를 오류 페이지로 호출하는 page 디렉티브 태그의 속성

 - 이때 오류 페이지에서 exception 내장 객체를 사용할 수 있음

 

예제

더보기

errorPage.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page errorPage="errorPage_error.jsp" %><!-- 오류를 대신 처리할 페이지 -->
<!-- pagr 디렉티브. errorPage 속성의 값으로 jsp페이지를 넣음 
JSP 페이지가 실행되는 도중 오류발생 시 오류페이지 호출.
 -->
<!DOCTYPE html>
<html>
<head>
<title>Exception</title>
</head>
<body>
	<!-- /ch11/errorPage.jsp?name=james -->
	<!-- /ch11/errorPage.jsp?name= -->
	<!-- /ch11/errorPage.jsp
		오류발생(null을 대문자로 변환할 수 없음)
		파라미터 name이 없어서 오류발생
	-->
	<p>name 파라미터 : <%=request.getParameter("name").toUpperCase()%></p>
</body>
</html>

 

errorPage_error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page isErrorPage="true" %>
<!-- isErrorPage 속성 : 현재 JSP 페이지를 오류페이지로 호출하는 
	 page 디렉티브 태스의 속성. 이때 오류페이지에서 exception 내장객체를 사용 할 수 있음 
--> 
<!DOCTYPE html>
<html>
<head>
<title>Exception</title>
</head>
<body>
	<p><img src="/images/여수고양이.jpg" /></p>
	<!-- exception객체 : JSP에서 기본적으로 제공해주는 오류 처리용 기본 내장 객체
				오류이벤트의 toString()를 호출하여 간단한 오류 메시지 확인
	 -->
	<p>예외유형 : <%=exception.toString() %></p>
	<!-- 오류메세지의 발생 근원지를찾아 단계별로 오류를 출력 -->
	<p>단계별 오류출력 : <%=exception.printStackTrace() %></p>
	<!-- 예외 객체 타입을 출력  -->
	<p>예외 유형 : <%=exception.getClass().getName() %></p>
	<!--  오류이벤트와 함께 들어오는 메시지를 출력 -->
	<p>예외 메시지 : <%=exception.getMessage() %></p>
</body>
</html>

3. web.xml 파일을 이용한 예외 처리

 web.xml 파일을 이용한 예외 처리

 web.xml 파일을 통해 오류 상태와 오류 페이지를 보여주는 방법

 <error-page>…</error-page> 요소 내에 처리할 오류 코드나 오류 유형 및 오류 페이지를 호출

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

 

오류 코드로 오류 페이지 호출하기

오류 코드는 웹 서버가 제공하는 기본 오류 페이지에 나타나는 404, 500같이 사용자의 요청이 올바르지 않을 때 출력되는 코드로 응답 상태 코드 라고도  

JSP 페이지에서 발생하는 오류가 web.xml 파일에 설정된 오류 코드와 일치하§ 는 경우 오류 코드와 오류 페이지를 보여줌

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

예외 유형으로 오류 페이지 호출하기

예외 유형에 따른 오류 페이지 호출 방법은 JSP 페이지가 발생시키는 오류가 § web.xml 파일에 설정된 예외 유형과 일치하는 경우 예외 유형과 오류 페이지를 보여줌

 

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


4. try-catch-finally를 이용한 예외 처리

try-catch-finally

자바의 예외 처리 구문으로 스크립틀릿 태그에 작성

try 구문에는 예외가 발생할 수 있는 코드를 작성하고, catch 구문에는 오류가 발생할수 있는 예외 사항을 예측하여 오류를 처리하는 코드를 작성

finally 구문에는 try 구문이 실행된 후 실행할 코드를 작성하는데 이는 생략 가능


참고 파일 

Ch11 예외처리.pptx
2.00MB