详解Spring拦截器流程及多个拦截器的执行顺序_第1页
详解Spring拦截器流程及多个拦截器的执行顺序_第2页
详解Spring拦截器流程及多个拦截器的执行顺序_第3页
详解Spring拦截器流程及多个拦截器的执行顺序_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、详解spr拦截器流程及多个拦截器的执行顺序-拦截器的定义-测试拦截器*多个拦截器的执行顺序*让_pr进行拦截*总结拦截器是Spring中的组件,它可以在进入请求方法前做一些操作,也可以在请求方法后和渲染视图后做一些事情。拦截器的定义的拦截器只需要实现nrn接口r并进行酉配置即可。nrn接門的定义如下:publiinrHan:lerInterceptoroleanpreHan:le(HttpServlerrntrue;oi:postHan:le(HttpServletoi:afterCo:pletion(HttpSerrequest,HttpServletResponseresponsreqHt

2、tpServletResponseresponrequest,HttpServletResponsere在nrn中共有三个方法,每个方法的含义如下:prn:进入请求方法之前执行;pn请求方法执行完成之后执行;r:p视图渲染后执行。拦截器的执行流程类型的n它的返回值影响着请求方法,以及pan口那么后续的流程将不被执行,这可能也是拦截器命名的由来。的plin在prnd法中,它的返回值是行。具体如下。也就是说,在pr中如果返回测试拦截器写一个简单拦截器,代码如下:Slf4publicpstInterceptorrri:eanpreHan:(preHan:lerreturntrue;pSe

3、rn:lerIntequestrrri:ecvoi:log.inn:leHanpSerOverri:epublicvoilog.inion(HttpSeretion);ttpServletResponseresponsepServletResponseresponse,HttpServletResponserespon创建了一个下:n的监听器类,它实现了nrn的所有接口。写完n还需要进行注册。代码如ConfigurationpinnigipnnfigurerOverri:epiinnrprgirrgireaddIntercepntercep再来写一个简单的请求方法,代码如下:GetMappin

4、g(test)publicStringtest()returntest;来启动我们的项目,并进行访问,控制台的输出如下:nio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptor多个拦截器的执行顺序我们来写多个相同的监听器,分别是Tene、eprner和eperner。然后我们进行注册,注册代码如下:erridepublidaddInterepor,(Inter。eporRegirre,trre,try.addInter

5、。eptor(te,tInter。eptor()re,try.addInter。eptor(te,tInter。eptor2(re,try.addInter。eptor(te,tInter。eptor3(请求我们的方法,输出如下:nio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tI

6、nter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptorp跟注册顺序是相反的。注意观察输出的顺序,preHandle方法是按注册顺序进行执行的,而pHan和eaer让口preH口进行拦截口我们让ener的jpreHarndle返回值为al,e然后查看一下输出内容。nio-8081-exeeample.demo.Te,tIn

7、ter。eptornio-8081-exeeample.demo.Te,tInter。eptornio-8081-exeeample.demo.Te,tInter。eptor可以看到,e行了。ner的jpreHarndle的返回值为al以后,相当于在ener的jpreHarndle后续流程则不再继续执我们调整一下注册的顺序,代码如下:erridepublidaddInterepor,(Inter。eporRegirre,trre,try.addInter。eptor(te,tInter。eptor2(re,try.addInter。eptor(te,tInter。eptor()re,try.addInter。eptor(te,tInter。eptor3(修改顺序后的输出如下:example.deenerepnee可以看到它后面的流程都被拦截了,没有机会执行了。拦截器是使用一个进行保存,我们

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论