JSP 에러 응답 상태 코드
<응답 상태 코드>
: 웹 서버가 요청에 대한 응답을 전송할 때 HTTP 응답 메시지에 포함되는 요소,
현재 전송하려는 응답에 대응되는 요청의 처리 결과를 나타내는 코드.
->웹 클라이언트의 요청이 잘 처리되었는지, 어떤 문제가 발생했는지에 대한 내용을 의미하는 약속된 코드.
<자주 사용되는 응답 상태 코드 종류>
-200(★★★★★)
요청이 정상적으로 처리됨.
-301
URL이 옮겨짐
-307
임시로 리다이렉트됨
-400
잘못된 요청
-401
허용되지 않은 접근
-403
요청에 대한 수행 거절
-404(★)
요청한 페이지(파일)가 존재하지 않음
-405
허용되지 않은 메서드
-500(★)
서버 처리 오류
-503
서버 부하로 인해 요청에 대한 응답 불가
-> 400번 대 번호 : 요청이 잘못됨, 500번 대 번호 : 서버 문제(자바 코드 에러일 가능성이 높다.)
page 지시자
-errorPage : 현재 JSP 페이지 내 에러 발생 시 해당 에러를 처리할 JSP 페이지 지정
-isErrorPage : 현재 JSP 페이지가 에러 처리를 위해 작성된 페이지인지 설정
<예제>
100을 0으로 나누면 당연히 에러가 발생한다.
의도적으로 에러 페이지를 만들고 errorPage="ErrorHandling.jsp" 지시자를 선언한다.
->그리고 에러가 발생할 경우 이를 처리할 ErrorHandling.jsp를 만든다.
중요한 점!!!(★)
에러가 발생하고 응답하는 곳은 ErrorHandling.jsp 이지만
주소에는 ErrorStart.jsp로 표시된다.
-> 최초 요청 주소는 안 바뀐다.->포워드랑 비슷하다.
exception 내장객체
-getMessage() : 현재 오류에 대한 상세 메시지를 String 타입으로 리턴
-printStackTrace() : 현재 오류의 StackTrace 정보 출력
-toString() : 현재 오류에 대한 간략한 메시지를 String 타입으로 리턴
<예제>
응답 상태 코드별 에러 페이지 활용 ★★★★★
위에서 알아본 JSP 페이지 에러 처리는 발생한 에러에 따라 다른 값을 갖는다.
응답 상태 코드별 에러 페이지 활용은
web.xml 설정 파일을 통해 웹 애플리케이션에서 발생할 수 있는 특정 코드를 등록,
해당 코드에 대응되는 에러 페이지를 제작해 놓으면 해당 웹 애플리케이션에 속한
모든 웹 페이지에서 미리 등록해둔 상태 코드 발생 시 동일한 에러 페이지가 출력된다.
-> 웹 애플리케이션의 일관적인 에러 관리가 가능해진다!!
<예제>
web.xml 파일에 404 코드를 등록한다.
-> 404 에러가 발생하면
이렇게 에러 처리 페이지가 뜬다.
이러한 응답 상태 코드 처리 페이지는 응답 상태 코드별로 제작해 둘 수 있어서수행 중인 페이지 종류와 상관없이, 하나의 웹 애플리케이션 내에 존재하는 모든 페이지에서일어나는 특정한 응답 상태 코드에 대한 대응 페이지를 미리 마련할 수 있다.->에러 처리에 대한 일관성 & 사용자의 편의를 위해 보편적으로 사용되는 방식이다.
예를 들면 이런 것.
에러 페이지 직접 호출
이 외에 JSP 페이지에서 에러 발생 시 페이지 내부에서 직접 에러 처리를 담당할
페이지를 호출하는 방법도 있다.
->getRequestDispatcher() 메서드 이용
정리
1. page 지시자 내에 errorPage 속성과 isErrorPage 속성을 사용하여 특정
JSP 페이지 내부에서 에러 발생 시 에러를 처리해줄 별도의 전달 에러
JSP 페이지 지정&제작
->현재 JSP 어디에서건 에러나면 처리할 JSP 페이지 지정
2. 응답 상태 코드에 따라 전담 에러 JSP 페이지를 지정&제작
->현재 애플리케이션 전체에서 에러 코드 발생하면 그 에러 코드 처리할 JSP 지정
3. 자바 exception 종류별 전담 에러 JSP 페이지를 지정&제작
->현재 애플리케이션 전체에서 자바 Exception 발생하면 그 에러 처리할 JSP 페이지 지정
4. JSP 페이지 내에 특정 코드가 실행되는 도중 에러가 발생했을 때
그 에러를 처리해줄 전용 JSP 페이지 지정&제작
->특정 JSP 내에 특정 구간 코드에 에러 발생 시 에러를 처리해줄 JSP 페이지 지정
2. > 3.
범위 더 넓다, 넷 다 비교하면
2. > 3. > 1. > 4. 순서로 범위 넓다.
*어떤 JSP 페이지에서 4가지 에러 처리를 모두 적용했을 때 어떤 방식이 가장 먼저 사용될까?(우선 순위가 높을까?)
범위가 작고, 더 구체적일수록 먼저 사용된다.
'📒 education archive > 📍Servlet, JSP' 카테고리의 다른 글
JSP 공부 기록(6)-쿠키(Cookie), 아이디 저장 기능 로그인 예제 (0) | 2021.08.22 |
---|---|
JSP 공부 기록(5)-세션 관리, URL Rewriting, Hidden Field, 예제 (0) | 2021.08.22 |
JSP 공부 기록(3)-내장 객체,Redirect,Forward,Include (0) | 2021.08.16 |
JSP 공부 기록(2)-구구단 테이블,현재 날짜와 시간, 오칙 연산 예제 (0) | 2021.08.14 |
JSP 공부 기록(1)-기본 문법, 지시자, 스크립팅 요소 (0) | 2021.08.14 |