exception

JSP를 하면서 가장 빈번하게 보게 되는 에러로 404, 405, 500이 있다.

exception 객체로 이 3가지 에러를 분기하여 출력해보고자 한다.

 

[순서]

  • 에러의 의미와 이유
  • 에러 분기를 위한 web.xml 설정
  • 에러 출력
  • 결과 화면

 

1. 에러의 의미와 이유

앞서 말했듯이 JSP를 하며 만나는 대표적인 에러들을 알아보자.

(1) 404

일상에서도 웹 서핑을 하다가 간간히 볼 수 있다. 

Not Found, 클라이언트(Client)가 요청한 경로에서 문서를 찾을 수 없을 때 뜨는 에러메시지이다. 

URL 상의 경로명이나 파일명이 제대로 입력되었는지 확인한다.

(여담으로, 지금까지 코딩을 하면서 생긴 에러의 90%는 본인의 오타였다...)

 

(2) 405

Method Not Allowed,

허용되지 않는 메소드라는 뜻으로 GET 방식과 POST 방식 요청을 적절히 사용했나 확인한다.

 

(3) 500

Internet Server Error,

서버 내부 오류로 코드에 오타 또는 로직에 문제가 있어 서버가 요청 사항을 수행할 수 없을 때 발생한다.

개발하며 제일 많이 보는 에러로 개발 중인 코드를 전반적으로 확인하여 오류를 처리해야 한다.

 

2. 에러 분기를 위한 web.xml 설정

<error-page>
    <error-code>404</error-code>
    <location>/CH2/Exception.jsp</location>
</error-page>
<error-page>
    <error-code>405</error-code>
    <location>/CH2/Exception.jsp</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/CH2/Exception.jsp</location>
</error-page>

이전 포스팅에서 적지 않은 거 같아 이번에 적는 것이 있다.

web.xml에 새로운 설정을 추가할 때는 마치는 태그인 </web-app> 바로 위에 적도록 한다.

설정이 에러가 나는 경우 일일이 찾기도 쉽고 잘못 적은 코드가 있다면 수정하기도 쉽다.

 

3. 에러 출력

<%
//Exception.jsp 파일
//response 내장 객체로부터 에러 코드 확인
int status = response.getStatus();	//getStatus()가 int를 반환받는다.

//에러 코드에 따른 메시지 출력
if(status == 404) {
	out.print("404에러가 발생하였습니다. <br/>");
	out.print("경로를 다시 확인해주세요");
}
else if(status == 405) {
	out.print("405에러가 발생하였습니다. <br/>");
	out.print("요청방식을 다시 확인해주세요");
}
else if(status == 500) {
	out.print("500에러가 발생하였습니다. <br/>");
	out.print("소스 코드에 오류가 없는지 다시 확인해주세요");
}
%>

예전에 [3] 지시어 포스팅에서 isError를 공부하기 위해 작성한 코드에서 404 에러와 500 에러를 만난 적이 있다.

그 때의 파일들을 이번에 다시 실행시켜 보았다.

 

4. 결과 화면

Error500.jsp 실행화면

이전과 다른 화면이 출력되었을 뿐더러 시스템이 작성한 화면이 아닌 

작성자가 out.print() 안에 적은 문장이 출력된 것을 볼 수 있다.


이렇게 내장 객체 5가지 (request / response / out / application / exception)를 알아보았다.

마지막으로 핵심을 요약해보자면

  • request: 클라이언트(Client)의 요청을 받거나 웹 브라우저에 대한 정보 또는 헤더에 대한 정보를 읽을 때 사용된다.
  • response: 요청에 대한 응답을 웹 브라우저로 보낼 때 사용되며 페이지 이동 또는 헤더 추가에도 사용된다.
  • out: 변수 등의 값을 출력할 때 사용된다.
  • application: 웹 어플리케이션을 구성하는 모든 JSP에서 접근 가능하며, 설정값을 저장할 때 주로 사용된다.
  • exception: 예외 처리를 위해 사용된다.

'ebook > jsp' 카테고리의 다른 글

[10] 내장 객체의 영역 (Scope)  (0) 2022.06.22
[8] 내장 객체 - application  (0) 2022.05.28
[7] 내장 객체 - out  (0) 2022.05.27
[6] 내장 객체 - response  (0) 2022.05.25
[5] 내장 객체 - request  (0) 2022.05.24

+ Recent posts