最代码广告位
live的gravatar头像
live2016-09-26 18:28:33

SSH学习之路-Spring MVC中的拦截器:HandlerInterceptorAdapter

继承HandlerInterceptor ,实现拦截器
 * 作用:    任何你想做的事情都可以在preHandle postHandle afterCompletion完成;

如 在controller开始执行之前构建数据;并在controller执行完毕后释放数据.

 

关键点:拦截器类可以有两种方式

1.i mplements HandlerInterceptor

2.implements WebRequestInterceptor

Q:    可以同时声明多个拦截器吗?
A:    可以,并且可以指定特殊拦截器.如:
    <mvc:interceptors>
        <!--拦截全部请求: 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求,这个拦截器用来获取资源,释放资源等 -->  
        <bean id="every" class="core.base.HelperInterceptor"/>  
        <!--拦截全部请求: 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求,这里用来设定basepath -->
        <bean id="every2" class="core.base.BaseUrlInterceptor"/>
        
         <!--可以拦截特定请求 : 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的 -->  
        <mvc:interceptor>
            <mvc:mapping path="/testHacker.do"/>  
            <bean id="special3" class="core.base.SpecialInterceptor"/>  
        </mvc:interceptor>
        
    </mvc:interceptors>
    <mvc:annotation-driven/>
    
Q:    如果存在多个拦截器,执行顺序是怎样的?

preHandle 按照xml配置中声明的顺序正序执行,即先声明的先执行
postHandle  按照xml配置中声明的顺序 倒序执行,即先声明的后执行
afterCompletion 同postHandle

Q:    如果preHandle返回为false,会怎样?
A:    其他拦截器,以及本拦截器的postHandle 和  afterCompletion均不执行!

运行截图:

SSH学习之路-Spring MVC中的拦截器:HandlerInterceptorAdapter

项目结构截图:

SSH学习之路-Spring MVC中的拦截器:HandlerInterceptorAdapter


打赏

文件名:Demo-Live-Spring-MVC3_HandlerInterceptor.zip,文件大小:3668.875K下载
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友