springboot的拦截器Interceptor的性质
程序员文章站
2022-06-18 09:44:27
Interceptor在springboot2.x版本的快速入门 1 1 /** 2 2 * 登陆拦截器 3 3 * @author HILL 4 4 * 5 5 */ 6 6 public class LoginInterceptor implements HandlerInterceptor { ......
- interceptor在springboot2.x版本的快速入门
- 实现handlerinterceptor的接口,并重载它的三个方法:prehandle、posthandle、aftercompletion。
-
1 1 /** 2 2 * 登陆拦截器 3 3 * @author hill 4 4 * 5 5 */ 6 6 public class logininterceptor implements handlerinterceptor { 7 7 8 8 @override 9 9 public boolean prehandle(httpservletrequest request, httpservletresponse response, object handler) 10 10 throws exception { 11 11 return handlerinterceptor.super.prehandle(request, response, handler); 12 12 } 13 13 14 14 @override 15 15 public void posthandle(httpservletrequest request, httpservletresponse response, object handler, 16 16 modelandview modelandview) throws exception { 17 17 handlerinterceptor.super.posthandle(request, response, handler, modelandview); 18 18 } 19 19 20 20 @override 21 21 public void aftercompletion(httpservletrequest request, httpservletresponse response, object handler, exception ex) 22 22 throws exception { 23 23 handlerinterceptor.super.aftercompletion(request, response, handler, ex); 24 24 } 25 25 }
2.加载过滤器的配置类,并设置过滤路径路径
这里的意思是:添加一个myinterceptor拦截器,拦截路径为/properties。(注意不要忘记在配置类上加@configuration注解)
@configuration public class mywebmvcconfigurer implements webmvcconfigurer { @override public void addinterceptors(interceptorregistry registry) { registry.addinterceptor(new myinterceptor()).addpathpatterns("/properties"); webmvcconfigurer.super.addinterceptors(registry); } }
- 拦截器三个方法:prehandle、posthandle、aftercompletion的性质。
- 因为springboot就是类似一个配置好的ssm框架,所以mvc层就是springmvc,所以这里的性质也是一样的。
prehandle:在进入controller之前进行拦截并决定是否放行。
posthandle:在controller处理完请求后,返回视图前执行。当controller发生异常时不执行该方法。
aftercompletion:返回视图后,一般用于资源的回收,因为发生异常该方法也会执行
- interceptor的拦截性质
- 因为springmvc的入口就是dispatcherservlet,所有操作都是基于这个入口。所以interceptor只能拦截springmvc中的requestmapping,并不能拦截servlet
- 需要拦截servlet时要定义filter进行过滤。
- 多个拦截器是的执行顺序,prehandle是在configure类里先添加先执行。posthandle、aftercompletion则依次按顺序由先进后出的规则执行。
上一篇: 多线程问题
下一篇: 如何低成本打造副业增加收入?
推荐阅读
-
SpringBoot使用AOP+注解实现简单的权限验证的方法
-
SpringBoot Application事件监听的实现方案
-
粟末靺鞨的政权性质是怎样的?渤海国的疆域有多大
-
springboot+Quartz实现任务调度的示例代码
-
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
-
SpringBoot+Dubbo+Zookeeper整合搭建简单的分布式应用
-
springboot+mybatis日志显示SQL的最简单方法
-
SpringBoot中的五种对静态资源的映射规则
-
【玩转SpringBoot】看似复杂的Environment其实很简单
-
小白的springboot之路(十三)、过滤器、监听器、拦截器