에러페이지 지정 및 작성
에러 페이지 지정
– <%@ page errorPage="예외발생시보여질JSP지정" %>
에러 페이지 작성
– <%@ page isErrorPage="true" %>
> isErrorPage 속성이 true인 경우 에러 페이지로 지정
– exception 기본 객체 : 발생한 예외 객체
> exception.getMessage() : 예외 메시지
> exception.printStackTrace() : 예외 추적 메시지 출력
– IE에서 예외가 올바르게 보여지려면 에러 페이지가 출력한 응답 데이터 크기가 513 바이트보다 커야 함
예제
<%@ page errorPage="에러가나면이동할페이지"%>를 이용
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page errorPage="viewErrorMessage.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// 오류발생 구문
String name = request.getParameter("name").toUpperCase();
%>
</body>
</html>
viewErrorMessage.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>Insert title here</title>
</head>
<body>
<h1>오류가 발생했습니다. 메인페이지로 이동해주세요</h1>
<h3>
에러타입 : <%= exception.getClass().getName() %> <br>
에러메세지 : <%= exception.getMessage() %>
</h3>
<a href="../index.jsp"> INDEX로 이동</a>
</body>
</html>
응답 상태 코드 별 에러 페이지 작성 및 지정
web.xml 파일에서 설정
<error-page>
<error-code>에러코드</error-code>
<location>에러페이지의 URI</location>
</error-page>
예제
error404.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>Insert title here</title>
</head>
<body>
<h1>요청하신 페이지가 존재하지 않습니다. 404</h1>
<h1>주소를 확인 후 다시 다시 접속해주세요 :)</h1>
</body>
</html>
error500.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>Insert title here</title>
</head>
<body>
<h1>서버에서 데이터를 처리하는 중 오류가 발생했습니다. 500</h1>
<h1>다시 시도해주세요 ㅠㅠ</h1>
</body>
</html>
에러 500 발생시키기 위한 페이지 > error500.jsp가 보여진다
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%= 10/0 %>
</body>
</html>
예외 타입 별 에러 페이지 지정
web.xml에서 설정
<error-page>
<exception-type>예외클래스명</exception-type>
<location>에러페이지의 URI</location>
</error-page>
예제
errorType.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>Insert title here</title>
</head>
<body>
<h1>NullPointerException 발생~!</h1>
<h1>다시 시도해주세요 ㅠㅠ</h1>
</body>
</html>
에러 페이지의 우선 순위
예제
똑같은 NullPointerException이 발생하는 구문이지만 이동되는 에러페이지가 다르다.
아래 쪽 readParameter에는 <% page errorPage="viewErrorMessage.jsp"%> 구문이 있어서
web.xml에 NullPointerException타입의 에러페이지로 설정된 errorType.jsp가 뜨는 것이 아니라,
viewErrorMessage.jsp가 뜬다.
'JAVA > Jsp&Servlet' 카테고리의 다른 글
[JSP] session 기본 객체 (0) | 2020.12.18 |
---|---|
[JSP] 쿠키처리를 위한 유틸리티 클래스 만들기 (0) | 2020.12.17 |
[JSP] 쿠키 (0) | 2020.12.17 |
[JSP] beans 빈즈 (0) | 2020.12.17 |
[JSP] 내장객체와 속성관리 / 생명주기 (0) | 2020.12.16 |
[JSP] 기본 객체와 영역 / 내장객체 / request / response / .. etc (0) | 2020.12.15 |
[JSP] 지시어 & 액션 ( include / param / forward ) (0) | 2020.12.15 |