쌍용교육(JAVA)/JSP

쌍용교육 -JSP수업 47일차 errorPage -error

구 승 2024. 4. 24. 11:36

readParameter.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- 에러가 발생할 때 보여질 페이지 지정 --%>
<%@ page errorPage="/ch06_errorPage/error/viewErrorMessage.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파라미터 출력 </title>
</head>
<body>
name 파라미터의 값 : <%= request.getParameter("name").toUpperCase() %>
</body>
</html>

viewErrorMessage.jsp (error폴더)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ page isErrorPage="true" %>
<%-- isErrorPage="true" 는 현재 페이지가 에러가 발생했을 때 동작하는 페이지라고 설정 --%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>예외 발생</title>
</head>
<body>
요청 처리 과정에서 예외가 발생했습니다.<br>
빠른 시간 내에 문제를 해결하도록 하겠습니다.<br>
에러타입:<%= exception.getClass().getName() %><br>
예외 메시지 : <b><%= exception.getMessage()%></b>  
</body>
</html>

 

error404.jsp (error폴더)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>404 에러 발생</title>
</head>
<body>
<h1>404</h1>
<strong>요청한 페이지는 존재하지 않습니다.</strong>
<br><br>
주소를 다시 확인하고 사용하세요~~
</body>
</html>

 

error500.jsp (error폴더)

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>500 에러 발생</title>
</head>
<body>
<h1>500</h1>
<strong>페이지 호출시 오류가 발생했습니다.</strong>
<br><br>
잠시 후에 다시 사용하시기 바랍니다.
</body>
</html>

Web.xml

환경설정 느낌으로 생각

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>ch03_JSP</display-name>
  <!-- 응답 상태 코드별 에러 페이지 지정 --> 
  <error-page>
  	<error-code>404</error-code>
  	<location>/ch06_errorPage/error/error404.jsp</location>
  </error-page>
  <error-page>
  	<error-code>500</error-code>
  	<location>/ch06_errorPage/error/error500.jsp</location>
  </error-page>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
</web-app>

readParameter2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파라미터 출력</title>
</head>
<body>
name 파라미터 값: <%= request.getParameter("name").toUpperCase() %>
</body>
</html>

일부러 주소에 아무거나 입력을하면 404페이지로 바뀐다.

errorNullPointer.jsp (error폴더)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>NULL 에러 발생</title>
</head>
<body>
<h1>NULL</h1>
<strong>서비스 처리 과정에서 NULL 예외가 발생했습니다.</strong>
</body>
</html>

Web.xml 에러타입 추가 및 변경 시

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>ch03_JSP</display-name>
  <!-- 응답 상태 코드별 에러 페이지 지정 --> 
  <error-page>
  	<error-code>404</error-code>
  	<location>/ch06_errorPage/error/error404.jsp</location>
  </error-page>
  <error-page>
  	<error-code>500</error-code>
  	<location>/ch06_errorPage/error/error500.jsp</location>
  </error-page>
  <!-- 에러 타입별 에러 페이지 지정 -->
  <error-page>
  	<exception-type>java.lang.NullPointerException</exception-type>
  	<location>/ch06_errorPage/error/errorNullPointer.jsp</location>
  </error-page>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
</web-app>

readParameter2.jsp의 html내용이 바뀜

에러페이지 우선순위가 NULL이기 때문