Spring MVC interceptors learning

1 Introduction

Spring Web MVC framework is based on the original Web Servlet API built.

2 interceptor

2.1 Definitions

Intercepted mechanism springmvc framework

2.2

2.2.1 The two-step

  1. Implement HandlerInterceptor Interface
  2. Registration (xml or annotation)
2.2.2 HandlerInterceptor Interface

uWlpI1.png

  1. Implement HandlerInterceptor Interface
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class InterceptorTest implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle");
        return true; // 只有返回true才会继续向下执行,返回false取消当前请求
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion");
    }
}
  1. registered
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 注册拦截器(扫描到拦截器)
 */
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurerAdapter {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new InterceptorTest()).addPathPatterns("/**");
        super.addInterceptors(registry);
    }
}
  1. scenes to be used

Interceptor can intercept the data before and after the request, similar to the door post, door posts generally have to check the identity function, for interceptor, the interceptor has permission check function, whether the request can be sure, you can check or other token inside.

Performance testing. Time calculation can be detected before and after the performance of the interface request.

Journaling. Intercept request data recording request parameter.

Guess you like

Origin www.cnblogs.com/chenzhuantou/p/11665447.html