우선순위1. page 디렉티브의 errorPage 속성 사용(전용 오류 처리)
<%@ page errorPage="/error/noParamEx.jsp" %>이게 없을때 2로 넘어감
우선순위2. web.xml 파일의 exception-file<error-page> <exception-type>java.lang.NullPointerException</exception-type> <location>/error/500.jsp</location> </error-page>
우선순위3. web.xml 파일의 error-code(별도 오류 처리)
<error-page> <error-code>404</error-code> <location>/error/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/error/500.jsp</location> </error-page>
우선순위4. 우선순위1~3까지 아무것도 안했다면,,, 웹컨터이너(tomcat)가 제공하는
기본 오류 페이지를 보여줌
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page errorPage="/error/noParamEx.jsp" %><!-- 오류가 나면 요청의 흐름이 이동됨 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파라미터가 없는 오류가 발생함</title>
</head>
<body>
/error/noParamEx.jsp를 생성하여 오류 처리<br />
<pre>
</pre>
<%
//memId=a001과 같은 파라미터가 없을 시 null을 toUpperCase하는 과정에서 오류발생
String memId = request.getParameter("memId").toUpperCase();
%>
</body>
</html>
인터넷 익스플로러는 오류 페이지의 길이가 513 바이트보다 작으면
자체적으로 제공하는 HTTP 오류 메시지를 화면에 출력
그래서 에러 페이지의 길이가 513 바이트 이상이 되도록 해주어아 함
그래서 주석에 지금처럼 아무 글이나 적어서 513 바이트 이상이 되도록 해주어아 함.
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<title>예외 발생</title>
</head>
<body>
요청 처리 과정에서 예외가 발생했습니다.<br />
빠른 시간 내에 문제를 해결하도록 하겠습니다.<br />
<p>
오류 타입 : <%=exception.getClass().getName()%><br />
오류 메시지 : <b><%=exception.getMessage()%></b>
</p>
</body>
</html>