개발 성장기/Servlet
필터와 랩퍼(Head First Servlet & JSP)
주난v
2019. 11. 16. 19:57
필터
필터는 자바 컴포넌트
중간에서 요청을 가로챈다. Dispatcher Servlet 이전에..(service() 메소드 호출 전에)
장점 : 아무도 눈치채지 못한다.
Request / Response 필터
Request Filter
- 보안 체크
- 헤더와 바디 체크
- 요청 감시 및 기록
Response Filter
- 응답 스트림 압축
- 새로운 응답, 추가 수정
필터와 서블릿은 유사하다.
- 컨테이너가 API를 알고 있다.
- 컨테이너가 생명주기를 관리한다. doFilter()
- DD(web.xml에 설정)
구현
implements Filter
필터의 생명주기
init() -> doFilter() -> destory()
init() : 설정
doFilter() : 필터 기능 구현
destory()
Filter Chain
DD(web.xml)에 정의된 필터의 순서를 기억한다.
응답 Filter
HttpServletResponse 인터페이스를 구현한 객체를 chain.doFilter()에 넘겨야 함.
Wrapper
데코레이터 패턴과 유사
- 특정 객체를 둘러 싸거나 겉을 치장한다.