springmvc 14 拦截器

自定义拦截器

1. 自定义的拦截器实现HandlerInterceptor接口

public class FirstInterceptor implements HandlerInterceptor {

    @Override
    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        System.out.println("firstInterceptor->afterCompletion");
    }
    /* 渲染视图后调用*/

    @Override
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
        System.out.println("firstInterceptor->postHandle");     
    }
    /* 目标方法执行后调用
     * 但是此时还没有渲染视图*/
    
    @Override
    public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
        System.out.println("firstInterceptor->preHandle");
        return true;
    }
    /* 目标方法执行前调用 :
     * 如果返回false,那么将不再继续*/

}

2. 在springmvc中配置拦截器

<mvc:interceptors>
        <bean class="interceptor.FirstInterceptor"></bean>
        
        <!-- 配置(不)拦截的路径 -->
        <mvc:interceptor>
            <mvc:mapping path="/testInterceptor"/><!-- secondInterceptor拦截的路径 -->
            <mvc:exclude-mapping path="/other"/><!-- secondInterceptor不拦截的路径 -->
            <bean class="interceptor.SecondInterceptor"></bean>
        </mvc:interceptor>
            
    </mvc:interceptors>

3. 拦截器的执行顺序

firstInterceptor->preHandle
secondInterceptor->preHandle
testInterceptor
secondInterceptor->postHandle
firstInterceptor->postHandle
secondInterceptor->afterCompletion
firstInterceptor->afterCompletion
Paste_Image.png

如果某个preHandle方法返回了false,那么其后面的方法都没有机会再执行,除了比该拦截器优先级高的afterCompletion方法除外

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 姓名: 李小娜 [嵌牛导读]: SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,...
    n184阅读 3,212评论 0 4
  • 一、拦截器入门(工程springmvc-mybatis10) 1.1 拦截器的定义 HandlerIntercep...
    yjaal阅读 1,149评论 1 8
  • 前言:一年前看视频学习这个框架的时候做的笔记。。。现在自己看来觉得还是有点蛋疼。。。想了想还是放上来了,万一开发要...
    l_sivan阅读 699评论 0 7
  • 各位简友,欣赏更多的欧美经典音乐,请关注公众号:MusicLoves 公众号MusicLoves,汇总了小编从做音...
    三羊洋阅读 443评论 0 0