本文介绍: 拦截器和过滤器的功能都差不多,拦截器是SpringBoot的,而且过滤器是Servlet的SpringBoot过滤器。
介绍
拦截器和过滤器的功能都差不多,拦截器是SpringBoot的,而且过滤器是Servlet的
SpringBoot过滤器
拦截器-过滤器 执行顺序
发起请求-》过滤器-》拦截器-》接口
创建拦截器
实现HandlerInterceptor 的接口,并且实现他都三个方法
- preHandle: 进入controller前执行 true放行 false不放行
- postHandle: controller运行完成后执行
- afterCompletion: 视图渲染完毕后执行 最后执行的方法
三个方法都默认实现,按要求保留即可
@Component //交给IOC容器管理
public class RequestInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//进入controller前执行 true放行 false不放行
//拦截到执行的操作
// return HandlerInterceptor.super.preHandle(request, response, handler);
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//controller运行完成后执行
// HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//视图渲染完毕后执行 最后执行的方法
// HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}
注册拦截器(配置类)
配置类继承接口WebMvcConfigurer ,并实现他都addInterceptors方法,
@Configuration //表示该类为配置类
public class WebConfig implements WebMvcConfigurer {
@Autowired
private RequestInterceptor interceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(interceptor).addPathPatterns("/**");
//拦截所有的请求
// registry.addInterceptor(interceptor)
// .addPathPatterns("/user")//需要拦截的请求
// .excludePathPatterns("/login");//不需要拦截的请求
}
}
拦截路径的配置
- /*: 拦截所有一级路径,如:/login 或 /user …
- /**: 拦截任意路径,如:/login 或 /user/1 或 /deletes/user/1
- /user/*: 拦截/user的任意一级路径 如:/user/login,不可以拦截二级如:/user/deletes/2
- /user/**: 拦截/user下的任意路径
原文地址:https://blog.csdn.net/dpc5201314/article/details/136046965
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_66939.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。