Spring MVC开发技术指南第6章 拦截器_第1页
Spring MVC开发技术指南第6章 拦截器_第2页
Spring MVC开发技术指南第6章 拦截器_第3页
Spring MVC开发技术指南第6章 拦截器_第4页
Spring MVC开发技术指南第6章 拦截器_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论