- Filter 란?

필터란, 서블릿 2.3버전에 추가된 것으로, 클라이언트의 요청을 서블릿이 받기 전에 

가로채어 필터에 작성된 내용을 수행하는 것을 말한다.

따라서, 필터를 사용하면 클라이언트의 요청을 가로채서 서버 컴포넌트의 추가기능 수행


- Filter 기능

      1. 인증(사용자 인증)

2. 로깅 및 감사필터

3. 이미지 변환

4. 데이터압축

5. 암호화 필터

6. 토크나이징(Toknizing) 필터

7. XML 컨텐츠를 변경하는 XSLT 필터

8. Mime-Type 체인필터

9. URL 및 기타정보들을 캐시하는 필터


- 필터 적용 순서

1. 필터인터페이스 구현하는 자바 클래스 생성

2. /WEB-INF/web.xml 에 FIlter 엘리먼트를 사용해서 필터 클래스 등록


- 필터의 라이프 사이클

필터는, 서블릿과 비슷한 라이프 사이클을 가지며 생성, 초기화, 필터, 종료 4단계로 이루어진다.

또한, 서블릿 컨테이너 필터 객체가 초기화 파라미터에 접근하는데 사용하는 환결설정 객체

(FilterCOnfig) 의 레퍼런스를 제공한다.


서블릿 컨테이너가 필터의 init() 메서드를 호출하면 필터 인스턴스는 바로 요청을 처리할수 있는

상태가 된다.

service() 메서드를 이용해서 요청을 처리한 것처럼 필터는 doFilter() 메서드를 통해서 요청을

처리한다.

모든 요청에 대한 처리가 끝나면 destory() 메서드가 호출되면서 필터는 피활성 상태로 변경된다.


- 필터 클래스

필터 클래스는 javax.servlet.Filter 인터페이스를 구현해야 한다.

Filter 인터페이스는 init(), doFilter(), destory() 메서드를 정의 되어 있다


- init(FIlterConfig config) : void throws ServletException

서블릿 컨테이너가 필터 인스턴스를 초기화 하기 위해서 호출하는 메서드

- doFilter(ServletRequest req, ServletResponse res, FilterChain chain)

: viod throws IOException, ServletException

필터의 조직을 작성하는 메서드

- destory() : void

필터 인스턴스를 종료시키기 전에 호출하는 메서드

+ Recent posts