서블릿이 지원하는 수문장
필터 흐름
HTTP 요청 -> WAS -> 필터(들) -> 서블릿 -> 컨트롤러
필터에서 막히면 끝낼수 있음 (로그인에 딱임)
필터 인터페이스 (javax.servlet.Filter)
init() : 컨테이너가 생성될때 호출doFilter() : 로직destroy() : 컨테이너가 종료될 때 호출스프링시큐리티 등은 필터로 구현되어있음
스프링 MVC가 제공하는 기술로, 필터와 비슷하지만 순서,범위,사용방법이 다름
인터셉터 흐름
HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터(들) -> 컨트롤러
HandlerInterceptor 인터페이스를 구현해서 사용
preHandle : 호출 전 true면 진행, false면 끝PostHandle : 호출 후 (컨트롤러 예외면 호출 X)afterCompletion 요청 완료 이후 (뷰 렌더링 이후) (무조건 호출)
addPathPatterns,excludePathPatterns로 정밀하게 URL 지정