Spring
인터셉터와 필터 차이
kingkk31
2020. 2. 23. 13:40
겉으로 보기엔 둘이 하는게 비슷해 보이지만 애초에 위치가 다르다.
Filter
- DispatcherServlet 앞단에서 DispatcherServlet에 요청이 가기전에 정보 처리
- J2EE 표준 스펙에 정의되어 있는 기능
- 메소드 실행 시점
- init() : 필터 인스턴스 초기화시점에 실행
- doFilter() : 전/후 처리
- destory() : 필터 인스턴스 종료시 실행
Interceptor
- DispatcherServlet에서 Handler(Controller)로 가기전에 정보 처리
- SpringFramework에서 자체적으로 제공하는 기능
- 메소드 실행 시점
- preHandle() : 컨트롤러 들어가기 전에 실행
- postHandle() : 컨트롤러에 들어갔다가 나온 후 뷰로 보내지기 전에 실행
- afterCompletion() : 뷰까지 끝나고난 후 실행