filter와 interceptor의 차이
둘의 기본적인 차이점은 호출되는 시점이 다르다는 것이다.
호출되는 시점이 어떻게 다른지 그림을 보면 더욱 이해가 쉽다.
그림을 보면
filter는 dispatcherServlet가 실행되기 전에 실행되도
interceptor는 dispatcherServlet이 실행된 후 controller 실행 전에 실행되는 것을 알 수 있다.
또한 method가 다르다.
Interceptor
preHandle() : 컨트롤러로 들어가기 전
postHanle() : 컨트롤러에 들어갔다 나온후 뷰로 보내기전
afterCompletion() : 뷰까지 끝난 후
Filter
init() : 필터 인스턴스 초기화
doFilter() : 전/후 처리
destroy() : 필터 인스턴스 종료
참고 : http://changpd.blogspot.kr/2013/03/spring.html