[Spring] Filter & Interceptor
21 Jun 2018
spring
spring
basic
1. Filter
public interface Filter {
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain);
}
1) Filter란?
2) init()
3) doFilter()
4) destroy()
2. Interceptor
public interface HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception;
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
throws Exception;
@Override
public void afterCompletion(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception;
}
1) Interceptor란?
- Spring Framework에서 지원하는 스팩
2) preHandle()
- Controller 전에 호출된다.
- return 값이 false일 경우 controller 및 다음 postHandle 역시 호출되지 않는다.
- 인증처리 등을 추가하면 좋다.
- 요청 로그를 남기기 좋다.
3) postHandle()
- Controller가 호출되고 난 뒤 호출된다.
- Request 값을 변경하는데 사용하면 좋다.
- View에 공통적으로 값을 추가할 때 사용하면 좋다.
4) afterCompletion()
3. Filter와 Interceptor 차이점
- Filter는 Dispatcher servlet 앞단에서 처리한다. Interceptor는 Controller 시작부터해서 메소드별로 라이프 사이클에 맞게 호출된다.
- Interceptor와 다르게 Filter는 web.xml에 설정을 추가한다.
Related Posts