当前位置: 移动技术网 > IT编程>开发语言>Java > springboot的拦截器Interceptor的性质

springboot的拦截器Interceptor的性质

2019年04月12日  | 移动技术网IT编程  | 我要评论

酒瓶门,进击的巨人ost,中国韩国萨德最新消息

  • interceptor在springboot2.x版本的快速入门
  1. 实现handlerinterceptor的接口,并重载它的三个方法:prehandle、posthandle、aftercompletion。
  2.  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的性质。
  1. 因为springboot就是类似一个配置好的ssm框架,所以mvc层就是springmvc,所以这里的性质也是一样的。

    prehandle:在进入controller之前进行拦截并决定是否放行。

    posthandle:在controller处理完请求后,返回视图前执行。当controller发生异常时不执行该方法。

    aftercompletion:返回视图后,一般用于资源的回收,因为发生异常该方法也会执行

  • interceptor的拦截性质
  1. 因为springmvc的入口就是dispatcherservlet,所有操作都是基于这个入口。所以interceptor只能拦截springmvc中的requestmapping,并不能拦截servlet
  2. 需要拦截servlet时要定义filter进行过滤。
  3. 多个拦截器是的执行顺序,prehandle是在configure类里先添加先执行。posthandle、aftercompletion则依次按顺序由先进后出的规则执行。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网