반응형
서블릿 필터와 리스너의 차이점
웹 애플리케이션 개발 시, 서블릿 필터(Servlet Filter)와 리스너(Listener)는 중요한 역할을 합니다.
이 둘은 비슷해 보일 수 있지만, 각기 다른 목적과 기능을 가지고 있습니다.
서블릿 필터(Servlet Filter)란?
서블릿 필터는 클라이언트의 요청(request)과 서버의 응답(response) 사이에서 동작하는 컴포넌트입니다. 주로 요청을 가로채어 추가적인 처리나 검증을 수행하거나, 응답을 수정하는 데 사용됩니다.
- 주요 기능:
- 요청 및 응답 로깅
- 인증 및 권한 검증
- 데이터 압축 및 암호화
- 요청 데이터 변환
- 예제:
public class AuthFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 요청 전 처리
System.out.println("요청 필터링 중...");
chain.doFilter(request, response);
// 응답 후 처리
System.out.println("응답 처리 완료");
}
}
리스너(Listener)란?
리스너는 웹 애플리케이션의 생명주기(Lifecycle)나 특정 이벤트를 감지하고 반응하는 역할을 합니다. 주로 애플리케이션, 세션, 요청 수준의 이벤트를 모니터링하는 데 사용됩니다.
- 주요 기능:
- 애플리케이션 시작/종료 감지
- 세션 생성/소멸 감지
- 요청 속성 변경 감지
- 예제:
public class AppContextListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
System.out.println("애플리케이션이 시작되었습니다.");
}
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("애플리케이션이 종료되었습니다.");
}
}
주요 차이점
필터 | 리스너 | |
역할 | 요청/응답 가로채기 및 처리 | 이벤트 감지 및 반응 |
동작 시점 | 요청 전/후 | 애플리케이션, 세션, 요청 생명주기 전반 |
용도 | 인증, 로깅, 데이터 변환 | 초기화 작업, 자원 관리, 세션 추적 |
설정 방법 | web.xml 또는 애너테이션 @WebFilter 사용 | web.xml 또는 애너테이션 @WebListener 사용 |
서블릿 필터와 리스너는 웹 애플리케이션의 동작을 세밀하게 제어하고, 유지보수성을 높이는 데 중요한 역할을 합니다.
반응형
'개발 관련 > Server' 카테고리의 다른 글
우분투(Ubuntu)에 Nginx 설치하는 방법우분투(Ubuntu)에 Nginx 설치하는 방법 (0) | 2025.03.25 |
---|---|
[아파치] 우분투에 Apache 설치 (0) | 2025.03.17 |
enctype이란 무엇인가? (0) | 2025.02.10 |
DOM 객체란 무엇인가? (0) | 2025.02.10 |
Context Root란 무엇인가? (0) | 2025.02.10 |