版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章拦截器主要内容
拦截器的定义
拦截器的配置
拦截器的执行流程应用案例6.1拦截器概述SpringMVC的拦截器(Interceptor)与JavaServlet的过滤器(Filter)类似,它主要用于拦截用户的请求并做相应的处理。6.1.1拦截器的定义
定义一个拦截器可以通过两种方式:一种是通过实现HandlerInterceptor接口或继承HandlerInterceptor接口的实现类来定义;另一种是通过实现WebRequestInterceptor接口或继承WebRequestInterceptor接口的实现类来定义。@ComponentpublicclassTestInterceptorimplementsHandlerInterceptor{ @Override publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler) throwsException{ System.out.println("preHandle方法在控制器的处理请求方法前执行"); /**返回true表示继续向下执行,返回false表示中断后续操作*/ returntrue; } @Override publicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler, ModelAndViewmodelAndView)throwsException{ System.out.println("postHandle方法在控制器的处理请求方法调用之后,解析视图之前执行"); } @Override publicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex) throwsException{ System.out.println("afterCompletion方法在控制器的处理请求方法执行完成后执行,即视图渲染结束之后执行"); }}主要内容
拦截器的定义
拦截器的配置
拦截器的执行流程应用案例6.1.2拦截器的配置1.在SpringMVC的Java配置类中配置拦截器2.在SpringMVC的XML配置文件中配置拦截器1.在SpringMVC的Java配置类中配置拦截器 /** *配置拦截器 */ @Override publicvoidaddInterceptors(InterceptorRegistryregistry){ //可配置多个拦截器,testInterceptor针对gotoTest请求有效 registry.addInterceptor(testInterceptor).addPathPatterns("/gotoTest"); //registry.addInterceptor(testInterceptor).addPathPatterns("/**"); }2.在SpringMVC的XML配置文件中配置拦截器 <!--配置拦截器--> <mvc:interceptors> <!--配置一个全局拦截器,拦截所有请求--> <beanclass="interceptor.TestInterceptor"/> <mvc:interceptor> <!--配置拦截器作用的路径--> <mvc:mappingpath="/**"/> <!--配置不需要拦截作用的路径--> <mvc:exclude-mappingpath=""/> <!--定义在<mvc:interceptor>元素中,表示匹配指定路径的请求才进行拦截--> <beanclass="interceptor.Interceptor1"/> </mvc:interceptor> <mvc:interceptor> <!--配置拦截器作用的路径--> <mvc:mappingpath="/gotoTest"/> <!--定义在<mvc:interceptor>元素中,表示匹配指定路径的请求才进行拦截--> <beanclass="interceptor.Interceptor2"/> </mvc:interceptor> </mvc:interceptors>主要内容
拦截器的定义
拦截器的配置
拦截器的执行流程应用案例6.2拦截器的执行流程6.2.1单个拦截器的执行流程6.2.2多个拦截器的执行流程6.2.1单个拦截器的执行流程
在配置类中,如果只定义了一个拦截器,程序首先将执行拦截器类中的preHandle()方法,如果该方法返回true,程序将继续执行控制器中处理请求的方法,否则中断执行。如果preHandle()方法返回true,并且控制器中处理请求的方法执行后返回视图前,将执行postHandle()方法。返回视图后,才执行afterCompletion()方法。【例6-1】测试单个拦截器的执行流程。6.2.2多个拦截器的执行流程
在Web应用中,通常有多个拦截器同时工作,这时它们的preHandle()方法将按照配置文件或配置类中拦截器的配置顺序执行,而它们的postHandle()方法和afterCompletion()方法则按照配置顺序的反序执行。【例6-2】演示多个拦截器的执行流程。主要内容
拦截器的定义
拦截器的配置
拦截器的执行流程
应用案例6.3应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年济源职业技术学院单招英语模拟试题及答案
- 2026国家保安员资格考试题库(附参考答案)
- 池塘抓鱼课程设计
- 强化学习广告投放优化效果提升课程设计
- 本科课程设计规范
- BS课程设计实训心得
- 菜肴与酒水课程设计
- 单片机温湿度监测系统调试课程设计
- 基于RAG的智能客服方案课程设计
- PM预警装置设计实操课程设计
- CJ/T 437-2013垃圾填埋场用土工滤网
- CJ/T 124-2016给水用钢骨架聚乙烯塑料复合管件
- 《医疗机构胰岛素安全使用管理规范》
- 《建设项目环境监理文件编制指南》(T-GDAEPI04-2021)
- 2023装配式钢节点混合框架结构技术规程
- 海外项目施工现场HSE指南 中英文
- 人教版七年级数学上册作业设计
- 《高层建筑混凝土结构技术规程》XXX3-2010
- 2024届天津市南开区翔宇学校小升初考试数学试卷含解析
- GB/T 6346.1-2024电子设备用固定电容器第1部分:总规范
- 中国二手车出口国别指南2022
评论
0/150
提交评论