* Web Application 의 예외처리 방법 3가지 *
1. page directive의 "isErrorPage"와 "errorPage"속성을 이용한 예외처리
( exception 내장 객체를 이용한 예외 처리 )
- "JSP 전용" 예외처리 방식
- 유지보수 어려운 단점
* 아래 방법2,3은 Web Application "공통" 예외처리 방식
2. web.xml에 예외처리 설정하는 방식(HTTP status code기반)
3. web.xml에 예외처리 설정하는 방식(예외타입 기반)
1.exception 내장 객체를 이용한 예외 처리
1. 예외를 발생시키는 JSP 작성
- JSP명 : divide.jsp
- 0으로 나누어 NullPointerException 발생
<%@ page
language="java"
isErrorPage="false"
errorPage="/JSP/exceptionHandling.jsp"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% // scriptlet Tag
int n = 4 / 0;
%>
isErrorPage="false"
- "이 페이지는 예외를 처리하는게 아닌 발생시키는 페이지이다. " 라고 JSP 컨테이너에게 알리는 역할
errorPage="/JSP/exceptionHandling.jsp"
- 예외가 발생하면 이 속성에 지정한 JSP(/exceptionHandling.jsp)로 예외를 전달해주세요~!
2. 예외를 처리하는 JSP 작성
isErrorPage="true"
- 다른 JSP에서 발생하는 예외(Exception)를 내장객체인 exception으로 받아서 예외처리하는 역할을 수행
<%@ page
language="java"
isErrorPage="true"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 이 JSP는, 다른 JSP에서 발생하는 예외(Exception)를 내장객체인 exception으로 받아서,
예외처리하는 역할을 수행(isErrorPage="true"인 경우)-->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>error</title>
</head>
<body>
<h1>/JSP/exceptionHandling.jsp</h1>
<hr>
<!-- 내장객체인 exception 사용가능 -->
<h1>Lorem ipsum dolor sit amet consectetur adipisicing elit.</h1>
<h2><%= exception.getClass() %> : <%= exception %></h2>
<ol>
<% //scriptlet Tag
StackTraceElement[] stackTrace = exception.getStackTrace();
for(StackTraceElement element : stackTrace) {
%>
// Expression Tag
<li>at <%= element %></li>
<% } // enhanced for %>
</ol>
</body>
</html>
- /divide.jsp 페이지 실행
'교육과정 기록 > 💻back-end' 카테고리의 다른 글
[7.28] JSP - EL (0) | 2022.07.28 |
---|---|
[7.27] JSP - 액션 태그, 자바빈(JavaBeans) 규약 (0) | 2022.07.27 |
[7.26] JSP 기본 개념 (0) | 2022.07.26 |
[7.25] 서블릿 - 파일 업로드 & 다운로드 (0) | 2022.07.25 |
[7.21] 서블릿 - 세션 관리 (0) | 2022.07.21 |