Listener와 Filter는 Java 웹 애플리케이션에서 각각 다른 역할을 합니다. 이 둘은 요청과 응답 흐름에 개입할 수 있지만, 적용되는 방식과 목적이 다릅니다. 아래에서 두 가지의 차이점을 정리해 보겠습니다.


1. Listener

Listener는 애플리케이션의 생명주기 및 특정 이벤트를 모니터링하고 처리하는 데 사용됩니다.

특징:

  • 목적: 웹 애플리케이션의 상태나 이벤트(요청, 세션 생성/종료 등)를 감지하고 필요한 작업 수행.
  • 적용 범위: 전체 애플리케이션의 특정 이벤트 감지.
  • 주요 인터페이스:
    • ServletContextListener → 애플리케이션 시작/종료 이벤트 처리.
    • HttpSessionListener → 세션 생성/소멸 이벤트 처리.
    • ServletRequestListener → 요청 생성/소멸 이벤트 처리.

동작 방식:

  • Listener는 이벤트 기반으로 작동하며, 특정 상태가 발생했을 때 자동으로 호출됩니다.
  • 예를 들어, HttpSessionListener는 세션이 생성될 때 자동으로 sessionCreated() 메서드를 호출합니다.

장점:

  • 애플리케이션의 상태와 생명주기 관리에 유용.
  • 특정 상태 발생 시 로직을 자동으로 실행 가능.

2. Filter

Filter는 HTTP 요청과 응답 흐름에 개입하여 데이터를 가공하거나 처리하는 데 사용됩니다.

특징:

  • 목적: 요청(Request) 및 응답(Response)을 수정하거나 전처리/후처리.
  • 적용 범위: 특정 URL 패턴에 매핑되어 작동.
  • 주요 인터페이스:
    • javax.servlet.Filter

동작 방식:

  • Filter는 클라이언트와 서블릿 간의 요청과 응답을 중간에서 가로채어 처리합니다.
  • 주로 보안 검증, 로깅, 인코딩 설정, 캐싱 등의 작업에 사용됩니다.

장점:

  • 요청 및 응답을 전처리하거나 후처리할 수 있어 유연한 작업 가능.
  • 요청 흐름 제어 가능(예: 인증 실패 시 요청 차단).
 

주요 차이점

구분ListenerFilter
역할 애플리케이션의 상태/이벤트 감지 요청과 응답 흐름 전/후 처리
적용 범위 애플리케이션 전반 (글로벌 이벤트) 특정 URL 패턴 또는 모든 요청/응답
호출 시점 특정 이벤트 발생 시 (예: 세션 생성, 앱 시작) 요청/응답 시 항상 실행
사용 목적 이벤트 기반 작업(로그 기록, 세션 관리 등) 보안, 로깅, 요청 데이터 변환, 캐싱 등 처리
작동 방식 상태 변화에 반응 요청과 응답 데이터를 가로채어 처리
구현 인터페이스 ServletContextListener, HttpSessionListener 등 Filter

예를 들어:

  • Listener: 애플리케이션이 시작될 때 초기화 작업, 세션 생성 시 통계 기록.
  • Filter: 로그인 요청을 가로채어 인증 여부 확인, 요청 데이터를 변환하거나 응답 데이터를 암호화.

 

'컴퓨터 지식' 카테고리의 다른 글

[Web] Request, Session, Aplication 등 적용 범위  (0) 2024.12.03
[Content-Type] Content-Type 종류  (1) 2024.12.03
[파일]파일 시그니쳐(파일 헤더)  (3) 2024.11.20
[유니코드]CJK 한자  (1) 2024.10.31
[IP] 교육자료  (0) 2024.05.13

+ Recent posts