• 自定义拦截器


    springmvc配置文件中

    1 <!-- 自定义拦截器 -->
    2     <mvc:interceptors>
    3         <mvc:interceptor>
    4             <!-- 2个*代表包含子目录 -->
    5             <mvc:mapping path="/**/*.action"/>
    6             <bean class="cn.study.springmvc.interceptor.MyHandlerInterceptor" />
    7         </mvc:interceptor>
    8     </mvc:interceptors>

    拦截器代码

    自动以我们的拦截器,要实现org.springframework.web.servlet.HandlerInterceptor

     1 public class MyHandlerInterceptor implements HandlerInterceptor{
     2 
     3     /**
     4      * 前置方法,会在handler执行之前执行
     5      */
     6     @Override
     7     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
     8             throws Exception {
     9         System.out.println("前置方法 执行 。。。。。。。。");
    10         return true;
    11     }
    12 
    13     /**
    14      * 后置方法,会在handler执行之后执行
    15      */
    16     @Override
    17     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
    18             ModelAndView modelAndView) throws Exception {
    19         System.out.println("后置方法 执行 。。。。。。。。");
    20     }
    21 
    22     /**
    23      * 完成方法
    24      */
    25     @Override
    26     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
    27             Exception ex) throws Exception {
    28         System.out.println("完成方法 执行 。。。。。。。。");
    29     }
    30 
    31 }

    总结:

    l 拦截器的执行过程和Struts2的拦截器执行过程类似;

    l 拦截器的前置方法是正序执行,如果其中一个返回false则请求返回;

    l 拦截器的后置方法是倒序执行,后置方法只有在前置方法全部执行后才能被执行;

    l 拦截器的完成方法是倒序执行,完成方法不仅是在最后执行,而且如果前置方法返回false也会被执行(已经通过执行的拦截器的完成方法)。

  • 相关阅读:
    函数指针
    回调函数
    内核文件ntoskrnl.exe,ntkrnlpa.exe的区别??
    单引号和0的ASCII码
    文件句柄和句柄
    ObReferenceObjectByName蓝屏问题
    DbgPrint/KdPrint输出格式控制
    LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
    Mac中SVN的常见命令
    小程序分包加载实现代码包总上限8M
  • 原文地址:https://www.cnblogs.com/yangh965/p/5126819.html
Copyright © 2020-2023  润新知