Servlet이 제공

정의

필터는 서블릿이 지원하는 수문장같은 역할을 한다.

목적 및 특징

스프링과 무관하게 전역적으로 처리해야 하는 작업들을 처리할때 사용.

Filter는 Spring이 실행 되기전 실행되며 톰캣과 같은 웹컨테이너(WAS)에서 처리를 해주게 된다.

Request / Response에 대한 조작이 가능함(HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 처리 함)

예시

따라서 아래와 같은 처리에 적합하다.

Filter 흐름

HTTP 요청 → WAS → 필터 → 서블릿 → 컨트롤러

Filter 제한

HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 //로그인 사용자 HTTP 요청 -> WAS -> 필터(적절하지 않은 요청이라 판단, 서블릿 호출X) //비 로그인 사용자

필터에서 적절하지 않은 요청이라고 판단하면 걸러낼 수 있다.

로그인 여부를 체크하기에 좋다.

Filter 체인