springmvc登录检查 springmvc自定义拦截器

  • 先说登录检查,上图

可以选择实现HandlerInterceptor接口,也可以继承HandlerInterceptorAdapter

 

在springmvc中配置

 

拦截器:实现HandlerInterceptor中的几个方法介绍

自定义配置多个

单个拦截器中和多个拦截器并存时三个方法的执行顺序的规律:

若该方法返回的false,则不会继续执行,为true才会继续执行下一个方法

  1. 单个拦截器的执行顺序:

先定义一个拦截器:Interceptor1.java测试它里面三个方法的拦截顺序

       ======Interceptor1=============preHandle======

       ======Interceptor1=============postHandle======

       ======Interceptor1=============afterCompletion======

  1. 多个拦截器的执行顺序:
    1. 两个拦截器中preHandle方法都返回true时:在配置文件中配置顺序是先1后2

    preHandle:(配置的正序)

        ======Interceptor1=============preHandle======

        ======Interceptor2=============preHandle======

    postHandle:(配置的反序)

        ======Interceptor2=============postHandle======

        ======Interceptor1=============postHandle======

    afterCompletion:(配置的反序)

        ======Interceptor2=============afterCompletion======

       ======Interceptor1=============afterCompletion======

    1. 两个拦截器中preHandle方法都返回true时:在配置文件中配置顺序是先2后1

preHandle:(配置的正序)

        ======Interceptor2=============preHandle======

        ======Interceptor1=============preHandle======

    postHandle:(配置的反序)

        ======Interceptor1=============postHandle======

        ======Interceptor2=============postHandle======

    afterCompletion:(配置的反序)

        ======Interceptor1=============afterCompletion======

        ======Interceptor2=============afterCompletion======

当都所有拦截器都返回true时,此时总的规律:先开始的后结束。

 

    1. 中断流程测试
  1. 让Interceptor2的preHandle方法返回false时:(配置顺序中不是第一个的拦截器

======Interceptor1=============preHandle======

======Interceptor2=============preHandle======

======Interceptor1=============afterCompletion======

    说明:

首先拦截器2的preHandle返回false,它自己的后续方法全部中断。

其次拦截器1的preHandle返回true,但是它的postHandle也没有执行,说明postHandle受到所有拦截器的preHandle方法返回值的影响

再次拦截器1的afterCompletion方法却执行了,说明afterCompletion不受其他拦截器的preHandle方法返回值的影响。

结论:

postHandle受所有拦截器的preHandle执行结果的影响,只有全部preHandle都返回true时才执行

       afterCompletion只受它自己所属拦截器中preHandle的影响,preHandle返回true时执行。

  1. 让Interceptor1的preHandle方法返回false时:(配置顺序中的第一个拦截器

======Interceptor1=============preHandle======

结论:

配置顺序第一个拦截器的preHandle返回了false,则中断所有后续处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值