1.创建拦截器类
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("interceptor preHandle");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("interceptor postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("interceptor afterCompletion");
}
}
2.创建controller类
@RestController//@Controller+@ResponseBody
public class UserController {
@GetMapping("/user/getUser")//@RequestMapping+get请求
public User getUser() {
User user=new User();
user.setId(1);
user.setUserName("张三");
user.setUserPassword("123");
return user;//user对象会转换成json字符串
}
@GetMapping("/user/hello")//@RequestMapping+get请求
public String hello() {
return "hello spring boot";
}
@GetMapping("/user/index")//@RequestMapping+get请求
public String index() {
return "index";
}
}
3.创建拦截器的注册类
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//需要拦截的路径
String[] addPathPatterns= {
"/user/**"
};
//不需要拦截的路径
String[] excludePathPatterns= {
"/user/hello",
"/user/index"
};
//注册指定的拦截器,可以用注册多个
InterceptorRegistration interceptor=registry.addInterceptor(new LoginInterceptor());
interceptor.addPathPatterns(addPathPatterns);//添加需要拦截的路径
interceptor.excludePathPatterns(excludePathPatterns);//添加不需要拦截的路径
}
}
4.启动springboot项目运行测试即可