提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、自定义拦截器
代码如下(示例):
public class LoginInterceptor implements HandlerInterceptor {
/**
* @param request
* @param response
* @param handler 被拦截器的控制器对象
* @return boolean
* true: 请求能被Controller处理
* false: 请求被截断
*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
System.out.println("执行了LoginInterceptor的preHandle");
return true;
}
}
二、编写控制器
代码如下(示例):
@Controller
public class BootController {
@RequestMapping("/user/userAccount")
@ResponseBody
public String userAccount(){
return "访问user/userAccount";
}
@RequestMapping("/user/userLogin")
@ResponseBody
public String userLogin(){
return "访问user/userLogin";
}
}
三、添加拦截器对象,注入到容器中
代码如下(示例):
@Configuration
public class MyAppConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//添加拦截器对象, 注入到容器中
LoginInterceptor loginInterceptor = new LoginInterceptor();
//指定拦截的地址
String path[] = {"/user/**"};
//指定不拦截的地址
String excludePath[] = {"/user/userLogin"};
registry.addInterceptor(loginInterceptor)
.addPathPatterns(path)
.excludePathPatterns(excludePath);
}
}