filter와 interceptor의 차이


둘의 기본적인 차이점은 호출되는 시점이 다르다는 것이다.


호출되는 시점이 어떻게 다른지 그림을 보면 더욱 이해가 쉽다.





그림을 보면 

filter는 dispatcherServlet가 실행되기 전에 실행되도

interceptor는  dispatcherServlet이 실행된 후 controller 실행 전에 실행되는 것을 알 수 있다.



또한 method가 다르다.


Interceptor


preHandle() : 컨트롤러로 들어가기 전
postHanle() : 컨트롤러에 들어갔다 나온후 뷰로 보내기전
afterCompletion() : 뷰까지 끝난 후



Filter 


init() : 필터 인스턴스 초기화

   doFilter() : 전/후 처리
   destroy() : 필터 인스턴스 종료



참고 : http://changpd.blogspot.kr/2013/03/spring.html

+ Recent posts