#017 필터(Filter)
01. 필터란 무엇인가 ?
HTTP 요청과 응듭을 변경할수 있는 재 사용가능한 코드 이다. 필터는 객체의 형태로 존재하며 클라이언트로 부터 오는 요청과 최정자원 사이에 위치하여 클라이언트의 요청 정보를 알맞게 변경할수 있으며, 또한 필터는 최종 자원과 클라이언트 가능 응답 사이에 위치하여 최종자원의 요청결과를 알맞게 변경할수 있다.
자원이 받게 되는 요청 정보는 클라이언트와 자원 사이에 존재하는 필어에 의해 변경된 요청 정보가 되며, 도한 클라이언트가 보게 되는 응답 정보는 클라이언트와 자원사이에 존재하는 필터에 의해 변경된 응답 정보가 된다.
클라이언트와 자원사이에 한개의 필터만 존재할수 있는 것은 아니며, 여러개의 필터가 모여 하나의 필터 체인을 형성하게 된다.
여러개의 필터가 모여서 하나의 체인을 형성할떄 첫번째 필터가 변경하는 요청 정보는 클라이언트의 요청 정보가 되지만, 체인의 두번째 필터가 변경하는 요청정보는 첫번째 필터를 통해 변경된 요청정보가 된다. 즉, 요청 정보는 변경에 변경을 거듭하게 되는 것이다.
02. 필터의 구현
2.1 필터 인터페이스
Fileter 인터페이스는 다음과 같은 메서드를 선언하고 있으며, 필터 기능을 제공할 클래스느 ㄴ필터 인터페이스를 알맞게 구현해 주어야 한다.
public void init(FilterConfig filterConfig) throwxception : 필터를 초기화 할때 호출 된다.
public void doFilter(ServletRequest request, ServletResponse response, Filter Ch...