- 首先实现HandlerInterceptor接口写一个拦截器
public class MyInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("被拦截了===================");
return true;//返回true放行,false反之
}
@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 {
}
}
- 实现WebMvcConfigurer 接口的addInterceptors方法配置拦截器使其生效
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).
addPathPatterns("/ljq/**").//添加拦截器的地址
excludePathPatterns("/login");//添加不被拦截器的地址
}
}
- 这样拦截器就配置好了,我们进行测试下
@Controller
@RequestMapping("/ljq")
public class InterceptorController {
@RequestMapping("/testInterceptor")
@ResponseBody
public String testInterceptor(){
return "拦截器";
}
}
请求地址
测试结果