Programing/Spring Framework

Spring Web MVC Filter, Interceptor

BUST 2018. 12. 14. 22:44

Spring Web MVC Filter, Interceptor


Filter

public interface Filter {
  void doFilter(ServletRequest request, ServletResponse response, FilterChain chain);
}

Interceptor

public interface HandlerInterceptor {
  boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler);
  void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mav);
  void afterCompletion(HttpServletRequest request, HttpServeletResponse response, Object handler, Exception ex);
}


차이점

  • 호출이 되는 시점이 다르다.
    • Interceptor인 경우에는 Handler (Controller) 실행되기전에 실행이 된다.
  • Filter는 Servlet에서 구현된 인터페이스 (J2EE)
    • Servlet?
      •  자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램
  • Interceptor는 Spring에서 구현된 인터페이스