본문 바로가기
Back_end/JSP

JSP - 예외처리

by hyeon1016 2024. 10. 28.

예외 처리

프로그램이 실행되는 동안 발생한 문제, 오류를 처리하는 것을 의미한다.

 

예를 들어 예외 처리가 되지 않은 상태에서 웹 사이트를 이동할 때 주소를 잘못 입력하거나 웹 서버에 오류가 발생하면 사용자는 404 같은 페이지를 보게 된다.

이때 발생한 오류, 디렉터리 구조, 톰캣 버전사용자에게 절대 제공해선 안 되는 정보들이 표시되기 때문에 해킹당할 위험이 존재한다.

 

그렇기 때문에 예외 처리는 매우 중요하다.

 

예외 처리 방법

예외 처리 설명
web.xml  서버가 시작되기 전에
page 디렉티브 태그 서버가 시작된 후에
try-catch-finally 서버가 시작된 후에

 

web.xml과 Controller의 차이점

  web.xml Controller
  서버 시작 시 필요한 객체를 미리 생성 코드가 실행된 후에 필요한 객체를 생성한다.
장점 객체가 항상 준비된 상태로 유지 메모리 처리 속도가 효율적이다.
단점 메모리, 처리 속도 측면에서 불리하다. 객체 제공을 보장하지 않는다.(필요 시에만 객체를 생성하기 때문)
예시 Security, 예외처리 등의 작업에 사용된다. Repository의 처리에 사용됨
특징 static, 싱글톤 인스턴스/static, 싱글톤 선택 가능

 

 

 

page디렉티브 태그

errorPage 속성

현재 JSP 페이지에서 오류 발생 시 지정한 오류 페이지로 이동하여 오류를 처리하게 하는 태그

*isErrorPage 속성으로 지정된 오류 페이지가 필요함

<%@page errorPage="오류페이지경로"%>

 

 

isErrorPage 속성

속성 값을 true로 주면 현재 JSP 페이지가 오류를 처리하는 페이지임을 설정한다.

*Exception 객체를 사용할 수 있다. Exception객체를 생성한다고 생각하면 쉽다.( 변수 : exception)

<%@page isErrorPage="true/false"%>

 

메서드

메서드 반환 타입 설명
getMessage() String 예외 유형과 함께 출력되는 메시지를 출력한다.
toString() String 예외 객체 클래스의 이름과 예외 메시지를 모두 반환
printStackTrace()  String 오류 로그를 출력한다.
getClass().getName() String 예외 객체 클래스의 이름만 반환.

 

 

 

web.xml

error-page

web.xml 파일에 작성하여 특정 오류 발생 시 사용자에게 보여줄 오류 페이지를 설정한다.

<error-page>
    <error-code>오류 코드</error-code>
    <location>오류 페이지 경로</location>
</error-page>


요소

요소 설명
error-code 오류 코드를 설정하는 데 사용됨
location  error-code에 작성된 오류 발생시 호출할 오류 페이지의 경로 지정
exception-type 예외 클래스 지정

 

오류 코드

  코드 설명
  200 정상
클라이언트 측
오류
400 클라이언트의 요청이 잘못됨
401 접근이 허용되지 않음
404 페이지가 없다. (경로 오류)
405 요청된 메서드가 허용되지 않음
서버 측 오류 500 서버 내부의 에러
503 서버 과부화 or 보수중

 

예외 유형

예외 유형 설명
ClassNotFoundException 클래스를 찾지 못함(객체 생성 X)
NullPointerException 파라미터 관련 예외
IOException 입출력 처리 문제

 

 

try-catch-finally

JAVA의 예외처리와 동일하다

try{
	//예외 발생 가능성이 있는 실행문
} catch(Excetion e) {
	//예외 처리문
} finally {
	//예외와 상관 없이 반드시 실행되야 하는 구문(생략가능)
}

'Back_end > JSP' 카테고리의 다른 글

JSP - 세션  (0) 2024.10.30
JSP - 필터  (0) 2024.10.28
JSP - 시큐리티/보안 처리  (0) 2024.10.28
JSP - 다국어 처리  (2) 2024.10.28
JSP - 유효성 검사  (2) 2024.10.28