-
-
안녕하세요? 오늘은 Java의 인터셉터(Interceptor)와 필터(Filter)에 대해서 알아보도록 하겠습니다.
인터셉터(Interceptor)와 필터(Filter)는 요청과 응답을 가로채어 처리하는 메커니즘으로, 주로 웹 애플리케이션에서 사용됩니다. 이 둘은 비슷한 기능을 수행하지만, 사용되는 환경과 목적에 따라 다릅니다.
인터셉터 (Interceptor)
: 주로 Spring MVC와 같은 프레임워크에서 사용되는 컴포넌트로, 특정 요청에 대해 사전 및 사후 처리를 수행합니다. : 요청이 컨트롤러에 도달하기 전에(사전 처리) 또는 컨트롤러에서 응답을 반환한 후(사후 처리) 동작합니다. : 특정 메서드(컨트롤러) 호출 전후에 로직을 삽입할 수 있습니다. : Spring의 DI(의존성 주입)를 통해 다양한 서비스와 의존성을 주입받을 수 있습니다. : 트랜잭션 처리, 권한 검사, 로깅 등의 작업에 적합합니다. |
필터 (Filter)
: Java EE의 서블릿 API에서 제공하는 기능으로, 클라이언트의 요청과 서버의 응답을 가로채는 데 사용됩니다. : 서블릿이 요청을 처리하기 전에 요청을 가로채거나, 응답이 클라이언트에게 전달되기 전에 처리할 수 있습니다. : 여러 필터를 연결하여 순차적으로 요청을 처리할 수 있습니다. : 필터는 일반적으로 컨텍스트에 의존하지 않으며, 비즈니스 로직에 대한 직접적인 접근이 없습니다. : 인증, 인가, 요청/응답 데이터 인코딩 등을 처리하는 데 유용합니다. |
※ 인터셉터(Interceptor)와 필터(Filter)의 차이점
사용 환경 | Spring MVC 등 | Java EE 서블릿 API |
처리 위치 | 요청 처리 전후 | 요청 처리 전후 |
의존성 | DI 지원 | 일반적으로 DI 없음 |
사용 사례 | 트랜잭션 관리, 로깅, 권한 검사 | 인증, 인가, 요청/응답 변환 |
* 인터셉터(Interceptor) 사용 예제
ex) 인터셉터(Interceptor) 클래스(Class)
public class 인터셉터명 extends HandlerInterceptorAdapter {
boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
throws Exception;
}
void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
throws Exception;
}
void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
throws Exception;
}
}
ex) 서블릿(Servlet) xml
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="인터셉터적용액션" />
<mvc:exclude-mapping path="인터셉터제외액션" />
<bean class="인터셉터경로.인터셉터" />
</mvc:interceptor>
</mvc:interceptors>
오늘은 Java의 인터셉터(Interceptor)와 필터(Filter)에 대해서 알아보
오늘도 즐거운 하루 되시길 바라겠습니다.
'프로그래밍 > Back-end' 카테고리의 다른 글
JPA 주요 매핑 어노테이션에 대해서! (0) | 2024.10.14 |
---|---|
JPA 상속관계 매핑 MappedSuperclass (0) | 2024.10.11 |
JPA 상속관계 매핑 (0) | 2024.10.11 |
JPA 객체 지향 모델링 연관관계 매핑 (2탄) (0) | 2024.10.11 |
JPA 객체 지향 모델링 연관관계 매핑 (1탄) (0) | 2024.10.11 |
Java 쿠키(Cookie)와 세션(Session)에 대해서! (0) | 2024.10.10 |
Java 스트링(String) 스트링버퍼(StringBuffer) 스트링빌더(StringBuillder)에 대해서! (0) | 2024.10.10 |
JAVA 변수에 대해서! 전역변수 지역변수 객체변수 클래스변수 (0) | 2024.10.10 |