`
41669
  • 浏览: 8028 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring MVC 拦截器

    博客分类:
  • SSH
 
阅读更多

Controller层的拦截器继承于HandlerInterceptorAdapter

HandlerInterceptorAdapter.java
 1 public abstract class HandlerInterceptorAdapter implements HandlerInterceptor {
 2 
 3     /**
 4      * This implementation always returns <code>true</code>.
 5      */
 6     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
 7         throws Exception {
 8         return true;
 9     }
10 
11     /**
12      * This implementation is empty.
13      */
14     public void postHandle(
15             HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
16             throws Exception {
17     }
18 
19     /**
20      * This implementation is empty.
21      */
22     public void afterCompletion(
23             HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
24             throws Exception {
25     }
26 
27 }
Spring拦截器通过重写这三个方法实现Controller的拦截。
配置拦截器
xml
 1 <bean id="handlerMapping"
 2           class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 3         <property name="interceptors">
 4             <list>
 5                 <ref bean="controllerInterceptor" />
 6             </list>
 7         </property>
 8         <property name="mappings">
 9             <props>
10                 <prop key="/hao/hello.do">helloWorldController</prop>
11             </props>
12         </property>
13     </bean>
14     
15     <bean id="controllerInterceptor" class="com.web.spring.mvc.interceptor.ControllerInterceptor"/>
16 
ControllerInterceptor.java
 1 public class ControllerInterceptor extends HandlerInterceptorAdapter {
 2 
 3     /**
 4      * 在Controller方法前进行拦截
 5      */
 6     public boolean preHandle(HttpServletRequest request,
 7             HttpServletResponse response, Object handler) throws Exception {
 8         System.out.println("ControllerInterceptor.preHandle()");
 9         return true;
10     }
11 
12     /**
13      * This implementation is empty.
14      */
15     public void postHandle(HttpServletRequest request,
16             HttpServletResponse response, Object handler,
17             ModelAndView modelAndView) throws Exception {
18         System.out.println("ControllerInterceptor.postHandle()");
19     }
20 
21     /**
22      * 在Controller方法后进行拦截
23      */
24     public void afterCompletion(HttpServletRequest request,
25             HttpServletResponse response, Object handler, Exception ex)
26             throws Exception {
27         System.out.println("ControllerInterceptor.afterCompletion()");
28     }
29 }
说明:
发起请求,进入拦截器链,运行所有拦截器的preHandle方法,
1.当preHandle方法返回false时,从当前拦截器往回执行所有拦截器的afterCompletion方法,再退出拦截器链。
2.当preHandle方法全为true时,执行下一个拦截器,直到所有拦截器执行完。再运行被拦截的Controller。然后进入拦截器链,运行所有拦截器的postHandle方法,完后从最后一个拦截器往回执行所有拦截器的afterCompletion方法.
当有拦截器抛出异常时,会从当前拦截器往回执行所有拦截器的afterCompletion方法
Controller
 1 
 2 @Controller
 3 @RequestMapping("/hao")
 5 public class HelloWorldController {
 6 
 7     @RequestMapping(value = "/hello")
 8     public String hello(HttpServletRequest request, HttpServletResponse response) {
 9         System.out.println("hello");
15         return "helloWorld";
16     }
17 }

 

 

 

 

 

来源   http://www.blogjava.net/wmcoo/articles/333752.html

分享到:
评论

相关推荐

    spring mvc 拦截器获取请求数据信息.rar

    spring mvc 拦截器获取请求数据信息 解压之后放到项目中 直接运行就可以了 (将流多次运用)

    spring mvc拦截器过滤json中的null值

    spring mvc拦截器,过滤json数据中的null值,将null变成空字符串,内含截图,及jar包

    Spring MVC 拦截器入门例子

    拦截器是Spring MVC中一个十分重要且应用广泛的内容。这里简单敲了一个简单的例子,简单易懂

    详解Spring MVC拦截器实现session控制

    主要介绍了详解Spring MVC拦截器实现session控制,使用session监听,重复登录后,强制之前登录的session过期。有兴趣的可以了解一下。

    SpringMVCDemo:Spring MVC 框架知识案例

    1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 ...14.Spring MVC 拦截器案例 15.Spring MVC 异常处理案例

    Spring mvc拦截器实现原理解析

    主要介绍了Spring mvc拦截器实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Spring MVC 拦截器实现登录

    主要介绍了Spring MVC 拦截器实现登录,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring MVC 拦截器 interceptor 用法详解

    主要介绍了Spring MVC 拦截器 interceptor 用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Spring MVC 拦截器实现代码

    本篇文章主要介绍了Spring MVC 拦截器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    在spring-boot工程中添加spring mvc拦截器

    主要介绍了在spring-boot工程中添加spring mvc拦截器,Spring MVC的拦截器(Interceptor)不是Filter,同样可以实现请求的预处理、后处理。,需要的朋友可以参考下

    Spring MVC拦截器的基本使用方法

    主要给大家介绍了关于Spring MVC拦截器的基本使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring MVC具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    使用Spring MVC拦截器实现日志记录的方法

    本篇文章主要介绍了使用Spring MVC拦截器实现日志记录的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring Cloud OpenFeign - - - >拦截器

    初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器就是SpringMVC拦截器:Spring MVC拦截器发生在客户端 和 服务端之间,在客户端向服务端发送请求时进行拦截处理。...

    Spring MVC拦截器~~~登陆验证拦截-附件资源

    Spring MVC拦截器~~~登陆验证拦截-附件资源

    Spring MVC拦截器_动力节点Java学院整理

    Spring MVC的拦截器,是属于HandlerMapping级别的,可以有多个HandlerMapping ,每个HandlerMapping可以有自己的拦截器,具体内容详情大家通过本文学习吧

    Spring MVC--13.自定义拦截器

    Spring MVC--自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器Spring MVC--13.自定义拦截器

Global site tag (gtag.js) - Google Analytics