Springboot添加拦截器
1. 实现HandlerInterceptor接口
//preHandle 方法执行前 postHandle方法执行后 渲染视图前 afterCompletion 渲染视图后执行
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class WebInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("拦截器处理前 ...");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("拦截器处理后 渲染页面前...");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("拦截器处理completion 渲染页面后...");
}
}
2. 实现WebMvcConfigurer接口
@Configuration
public class WebConfig implements WebMvcConfigurer {
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new WebInterceptor()).addPathPatterns("/**");
}
}
//使用 /** 拦截所有请求 /*拦截单层请求 例如 /user 无法拦截 /user/save
参考: