개발 관련/Server

서블릿 필터와 리스너의 차이점

magpiebros 2025. 2. 10. 20:47
반응형

서블릿 필터와 리스너의 차이점

웹 애플리케이션 개발 시, 서블릿 필터(Servlet Filter)리스너(Listener)는 중요한 역할을 합니다.

이 둘은 비슷해 보일 수 있지만, 각기 다른 목적과 기능을 가지고 있습니다.

 

서블릿 필터(Servlet Filter)란?

서블릿 필터는 클라이언트의 요청(request)과 서버의 응답(response) 사이에서 동작하는 컴포넌트입니다. 주로 요청을 가로채어 추가적인 처리나 검증을 수행하거나, 응답을 수정하는 데 사용됩니다.

  • 주요 기능:
    1. 요청 및 응답 로깅
    2. 인증 및 권한 검증
    3. 데이터 압축 및 암호화
    4. 요청 데이터 변환
  • 예제:
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)나 특정 이벤트를 감지하고 반응하는 역할을 합니다. 주로 애플리케이션, 세션, 요청 수준의 이벤트를 모니터링하는 데 사용됩니다.

  • 주요 기능:
    1. 애플리케이션 시작/종료 감지
    2. 세션 생성/소멸 감지
    3. 요청 속성 변경 감지
  • 예제:
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 사용

 

서블릿 필터와 리스너는 웹 애플리케이션의 동작을 세밀하게 제어하고, 유지보수성을 높이는 데 중요한 역할을 합니다. 

 

반응형