페이지 디렉티브 태그로 예외 처리하기
<%@ page errorPage = "exception_error.jsp"%> // 예외 발생시 exception_error.jsp로 이동
위의 디렉티브 태그를 jsp 파일에 적용하면 오류 발생시 적어둔 페이지로 이동시켜 프로그램이 중단되는것을 막는다.
web.xml 파일을 이용한 예외처리
web.xml 파일 내에서 <error-page> ... </error-page> 요소와 하위요소를 이용해서 예외를 처리할수도 있다.
<error-code> : 오류 코드를 설정하는데 사용한다.(404라면 페이지를 찾을수 없습니다. 등)
<exception-type> : 자바 예외 유형의 정규화된 클래스 이름을 설정하는데 사용한다.
<location> : 오류 페이지의 URL을 설정하는데 사용한다.(오류 발생시 이동할 페이지)
주요 오류코드
200 : 요청이 정상 처리된다.
400번대 : 클라이언트의 요청이 잘못되었다.
500번대 : 서버 내부의 에러이다.
try-catch-finally를 이용한 예외처리
jsp 내에서 자바코드를 사용할 수 있기 때문에 자바에서 사용하던 try-catch-finally도 사용할수 있다.
try는 에러가 발생할 가능성이 있는 실행문에서 에러가 발생하는지 확인한다.
catch는 try 영역 내에서 에러가 발생하면 실행될 코드를 적는다.
finally는 에러의 발생과 무관하게 무조건 실행되야 하는 코드를 적는다.
예시)
try {
int a = 10/0; // 10을 0으로 나누려고 하여 에러발생
} catch {
RequestDispatcher rd = request.etRequestDispatcher("error.jsp");
rd.forward(request, response);
// catch문에 의해 페이지를 error.jsp로 보내버림(RequestDispatcher에 의해 파라미터는 가져감)
}
필터
클라이언트와 서버 사이에서 미리 request와 response 객체를 받아 사전/사후 작업을 처리하는 것이다.
사전작업을 처리해야 하기 때문에 필터 코드는 web.xml 파일에 작성된다.
필터 | 기능 |
Request 필터 (요청시) |
인증(사용자 인증) 요청 정보를 로그 파일로 작성 암호화 인코딩 작업 |
Response 필터 (응답시) |
응답 결과 데이터 압축 응답 결과에 내용 추가/수정 총 서비스 시간 측정 |
필터가 있기 때문에 클라이언트의 요청 흐름은
1. 클라이언트 요청
2. request 필터
3. jsp 또는 java
4. Response 필터
5. 서버로부터 응답
위의 순서로 진행된다.
Filter 인터페이스 구현 클래스
Filter 기능을 사용하기 위해서는 java 파일에서 Filter 인터페이스를 구현해야한다.
public class 클래스 이름 implements Filter {
(생략)
}
Filter 인터페이스를 구현할때는 반드시 경로가 jakarta.servlet 인지 확인해야한다.
Filter 인터페이스를 구현하게 되면 Filter 인터페이스 안의 모든 메서드를 반드시 오버라이딩 해야하며
Filter 인터페이스의 메서드는 아래와 같다.
메서드 | 설명 |
init() | 필터 인스턴스의 초기화 메서드이다. |
doFilter() | 필터 기능을 작성하는 메서드이다. |
destroy() | 인스턴스의 종료 전에 호출되는 메서드이다. |
init()과 destroy()는 초기화와 종료를 담당하므로 주로 doFilter()에서 기능을 담당한다.
web.xml 파일의 필터 구성
필터를 사용하기 위해서 필터 객체를 web.xml에서 설정한다.
<filter>
<filter-name>필터 이름</filter-name> // 필터를 적용할 파일 이름
<filter-class>필터 클래스</filter-class> // 필터 내용이 적용된 자바 파일 경로와 이름에 매치
</filter>
<filter-mapping>
<filter-name>필터 이름</filter-name> // 반드시 filter의 필터 이름과 같게 설정
<url-pattern>실행 시점</url-pattern> // 어떤 파일이 실행될 때 필터를 적용할지 설정
</filter-mapping>
위의 필터와 필터매핑 코드가 서로 연결되어 필터가 적힌 자바파일을 어느 시점에서 적용할지를 정하는 것이다.
또한 이러한 필터 생성 방법은 new가 아닌 또다른 객체생성 방법으로, 서블릿 기반 설정방식(servlet based configuration) 이라 불린다.
'프로그래밍 공부' 카테고리의 다른 글
2025.02.20 JSP 공부 (0) | 2025.02.20 |
---|---|
2025.02.19 JSP 공부 (0) | 2025.02.19 |
2025.02.17 JSP 공부 (0) | 2025.02.17 |
2025.02.14 JSP 공부 (0) | 2025.02.14 |
2025.02.13 JSP 공부 (0) | 2025.02.13 |