Spring的自定义拦截器

  我们知道Strust2中的工作流程实际上时通过一系列的拦截器来实现功能的,同样的,在SpringMVC中也可以定义一系列的拦截器来完成一些功能。

  1.自定义拦截器

  ① 写一个类实现HandleInterceptor接口并重写三个方法,preHnadle/postHandle/afterComletion

  ② 在springmvc.xml中进行配置一下这个类的<interceptors>的子节点。需要注意的是如不加说明,拦截器可拦截所有请求,但也可以指定只拦截和只不拦截哪些请求。

  2.三个方法的作用

  preHandle:它会在目标方法执行前进行调用,具体来说就是在堆请求参数进行类型转换、数据校验前进行调用。可做一些权限登录、日志、事务操作。

  这个方法有返回值:若不需要再调用后续的目标方法或者后续的拦截器,那么返回false;返回true则会继续调用后续的拦截器和目标方法。

  postHandle:这个方法在目标方法执行完后和返回响应前被调用。可做一些可在其中设置request的属性和要转向的视图。

  afterComplition:在DispacherServlet处理完请求之后被调用,可以用来释放某些资源。

  3.拦截器的执行顺序

  ① 拦截器之间按照在springmvc.xml中的配置顺序来执行。

  ② 而实际的拦截器中的三个方法的执行顺序是有规律的:

  pre1-->pre2-->handle-->post2-->post1-->aft2-->aft1

  即pre方法按照正序,post和aft方法按照反序执行,这是因为DispacherServlet中遍历Interceptor的for循环的方式不一样。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值