주난v 개발 성장기

필터와 랩퍼(Head First Servlet & JSP) 본문

개발 성장기/Servlet

필터와 랩퍼(Head First Servlet & JSP)

주난v 2019. 11. 16. 19:57

필터

필터는 자바 컴포넌트
중간에서 요청을 가로챈다. Dispatcher Servlet 이전에..(service() 메소드 호출 전에)
장점 : 아무도 눈치채지 못한다.

Request / Response 필터

Request Filter

  1. 보안 체크
  2. 헤더와 바디 체크
  3. 요청 감시 및 기록

Response Filter

  1. 응답 스트림 압축
  2. 새로운 응답, 추가 수정

필터와 서블릿은 유사하다.

  1. 컨테이너가 API를 알고 있다.
  2. 컨테이너가 생명주기를 관리한다. doFilter()
  3. DD(web.xml에 설정)

구현

implements Filter

필터의 생명주기

init() -> doFilter() -> destory()
init() : 설정
doFilter() : 필터 기능 구현
destory()

Filter Chain

DD(web.xml)에 정의된 필터의 순서를 기억한다.

응답 Filter

HttpServletResponse 인터페이스를 구현한 객체를 chain.doFilter()에 넘겨야 함.

Wrapper

데코레이터 패턴과 유사

  • 특정 객체를 둘러 싸거나 겉을 치장한다.