1. web.xml 파일을 이용한 예외 처리
▷ web.xml 파일을 통해 오류 상태와 오류 페이지를 보여주는 방법
▷ <error-page>…</error-page> 요소 내에 처리할 오류 코드나 오류 유형 및 오류 페이지를 호출
▷ web.xml 파일은 웹 애플리케이션의 /WEB-INF/폴더에 있어야 함
◎ 오류 코드로 오류 페이지 호출하기
▷ 오류 코드는 웹 서버가 제공하는 기본 오류 페이지에 나타나는 404, 500과 같이 사용자의 요청이 올바르지 않을 때
출력되는 코드로 응답 상태 코드라고도 함
▷ JSP 페이지에서 발생하는 오류가 web.xml 파일에 설정된 오류 코드와 일치하는 경우 오류 코드와 오류 페이지를 보여줌
◎ web.xml 파일에 오류 코드와 오류 페이지를 설정하는 형식
◎ web.xml 파일에 오류 코드로 오류 페이지 호출하기
1. web.xml 파일
<?xml version="1.0" encoding="UTF-8"?> <web-app> ... (생략) ... <error-page> <error-code>500</error-code> <location>/ch11/errorCode_error.jsp</location> </error-page> </web-app>
500번의 에러가 발생하면 errorCode_error.jsp가 실행하도록 만들어줍니다.
2. errorCode.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Exception</title> </head> <body> <form action="errorCode_process.jsp" method="post"> <p> 숫자1 : <input type="text" name="num1"> <p> 숫자2 : <input type="text" name="num2"> <input type="submit" value="나누기"> </form> </body> </html>
3. errorCode_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Exception</title> </head> <body> <% String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); int a = Integer.parseInt(num1); int b = Integer.parseInt(num2); int c = a / b; out.print(num1 + " / " + num2 + " = " + c); %> </body> </html>
4. errorCode_error.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>Exception</title> </head> <body> errorCode 505 오류가 발생하였습니다. </body> </html>
숫자2가 0이면 'errorCode 505 오류가 발생하였습니다.' 라는 문구가 나타납니다.
◎ 예외 유형으로 오류 페이지 호출하기
▷ 예외 유형에 따른 오류 페이지 호출 방법은 JSP 페이지가 발생시키는 오류가 web.xml 파일에 설정된 예외 유형과
일치하는 경우 예외 유형과 오류 페이지를 보여줌
◎ web.xml 파일에 예외 유형과 오류 페이지를 설정하는 형식
◎ web.xml 파일에 예외 유형으로 오류 페이지 호출하는 예제
1. web.xml 파일
<?xml version="1.0" encoding="UTF-8"?> <web-app> ...(생략)... <error-page> <exception-type>java.lang.Exception</exception-type> <location>/ch11/exceptionType_error.jsp</location> </error-page> </web-app>
Exception 모든 종류의 예외가 발생하면 exceptionType_error.jsp가 실행되도록 만들어줍니다.
2.exceptionType.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Exception</title> </head> <body> <form action="errorCode_process.jsp" method="post"> <p> 숫자1 : <input type="text" name="num1"> <p> 숫자2 : <input type="text" name="num2"> <input type="submit" value="나누기"> </form> </body> </html>
위의 예제와 같은 입력 화면이 출력됩니다.
3. exceptionType_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Exception</title> </head> <body> <% String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); int a = Integer.parseInt(num1); int b = Integer.parseInt(num2); int c = a / b; out.print(num1 + " / " + num2 + " = " + c); %> </body> </html>
정상적인 값(몫)이 출력됩니다.
4. exceptionType_error.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>Exception</title> </head> <body> exception type 오류가 발생하였습니다. </body> </html>
숫자2가 0이면 'exception type 오류가 발생하였습니다.' 라는 문구가 나타납니다.
web.xml 파일을 이용해서 해당 예외가 발생하면 원하는 페이지가 나타날 수 있도록 화면을 출력합니다.
web.xml로 코드도 줄이고 로그인, 예외처리 기능도 하면 훨씬 편리하겠네요!
마지막으로 남은 예외처리 문법도 배워보죠!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'BackEnd > JSP' 카테고리의 다른 글
[JSP 웹 프로그래밍] 필터 1 (Filter 인터페이스) (0) | 2023.03.08 |
---|---|
[JSP 웹 프로그래밍] 예외 처리 3 (try-catch-finally 이용한 예외 처리) (0) | 2023.03.08 |
[JSP 웹 프로그래밍] 예외 처리 1(page 디렉티브 태그 이용) (0) | 2023.03.07 |
[JSP 웹 프로그래밍] 시큐리티 2 (프로그래밍적 시큐리티 처리) (0) | 2023.03.07 |
[JSP 웹 프로그래밍] 시큐리티 1 (선언적 시큐리티 처리) (0) | 2023.03.07 |