Spring MVC (Handler) Interceptor

Below are the HandlerInterceptor methods.

HandlerInterceptor Methods:

  • preHandle(): Runs before to calling the target handler.
  • postHandle(): This function is called after the target handler but before the view is rendered by the DispatcherServlet.
  • afterCompletion(): Callback when request processing and display rendering being finished.

Create a HandlerInterceptor

The org.springframework.web.servlet.HandlerInterceptor interface must be implemented by a class before it can be used as a HandlerInterceptor.

LogFilter:

Java




@Component
public class LogFilter implements Filter {
  
    private Logger logger = LoggerFactory.getLogger(LogFilter.class);
  
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
      throws IOException, ServletException {
        logger.info("Hello from: " + request.getLocalAddr());
        chain.doFilter(request, response);
    }
}


LogInterceptor:

Java




public class LogInterceptor implements HandlerInterceptor {
  
    private Logger logger = LoggerFactory.getLogger(LogInterceptor.class);
  
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) 
      throws Exception {
        logger.info("preHandle");
        return true;
    }
  
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) 
      throws Exception {
        logger.info("postHandle");
    }
  
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) 
      throws Exception {
        logger.info("afterCompletion");
    }
}


Spring MVC – Servlet Filter vs Handler Interceptor

Filter is a Java class that is executed by the Servlet Container for each incoming HTTP request and each HTTP response. Filter is associated with the Servlet API, while HandlerIntercepter is unique to Spring. Only after Filters will Interceptors begin to operate. HandlerInterceptors are appropriate for fine grained pre-processing duties (authorization checks, etc.).

Similar Reads

Spring MVC (Servlet) Filter

Below are the Servlet Filter methods....

Spring MVC (Handler) Interceptor

...

Difference between (Servlet) Filter and (Handler) Interceptor

Below are the HandlerInterceptor methods....

Contact Us