zoukankan      html  css  js  c++  java
  • SpringMVC拦截器的使用

    定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。

     1 package cn.itcast.ssm.interceptor;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.web.servlet.HandlerInterceptor;
     7 import org.springframework.web.servlet.ModelAndView;
     8 
     9 public class HandlerInterceptor1 implements HandlerInterceptor {
    10 
    11     
    12     //进入 Handler方法之前执行
    13     //用于身份认证、身份授权
    14     //比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行
    15     @Override
    16     public boolean preHandle(HttpServletRequest request,
    17             HttpServletResponse response, Object handler) throws Exception {
    18         
    19         System.out.println("HandlerInterceptor1...preHandle");
    20         
    21         //return false表示拦截,不向下执行
    22         //return true表示放行
    23         return true;
    24     }
    25 
    26     //进入Handler方法之后,返回modelAndView之前执行
    27     //应用场景从modelAndView出发:将公用的模型数据(比如菜单导航)在这里传到视图,也可以在这里统一指定视图
    28     @Override
    29     public void postHandle(HttpServletRequest request,
    30             HttpServletResponse response, Object handler,
    31             ModelAndView modelAndView) throws Exception {
    32         
    33         System.out.println("HandlerInterceptor1...postHandle");
    34         
    35     }
    36 
    37     //执行Handler完成执行此方法
    38     //应用场景:统一异常处理,统一日志处理
    39     @Override
    40     public void afterCompletion(HttpServletRequest request,
    41             HttpServletResponse response, Object handler, Exception ex)
    42             throws Exception {
    43         
    44         System.out.println("HandlerInterceptor1...afterCompletion");
    45     }
    46 
    47 }

     配置拦截器  :springmvc配置类似全局的拦截器,springmvc框架将配置的类似全局的拦截器注入到每个HandlerMapping中。

     1     <!--拦截器 -->
     2 <mvc:interceptors>
     3     <!--多个拦截器,顺序执行 -->
     4     <!-- 登陆认证拦截器 -->
     5     <mvc:interceptor>
     6         <mvc:mapping path="/**"/>
     7         <bean class="cn.itcast.ssm.interceptor.LoginInterceptor"></bean>
     8     </mvc:interceptor>
     9     <mvc:interceptor>
    10         <!-- /**表示所有url包括子url路径 -->
    11         <mvc:mapping path="/**"/>
    12         <bean class="cn.itcast.ssm.interceptor.HandlerInterceptor1"></bean>
    13     </mvc:interceptor>
    14     <mvc:interceptor>
    15         <mvc:mapping path="/**"/>
    16         <bean class="cn.itcast.ssm.interceptor.HandlerInterceptor2"></bean>
    17     </mvc:interceptor>
    18 </mvc:interceptors>
  • 相关阅读:
    用互不相同的fib数列的数分解任意整数。
    2015 初赛TG 错题解析
    【模板】判断二叉查找树
    【初赛】完善程序题解题技巧 && 近六年PJ完善程序真题解析
    [NOIP 2012普及组 No.2] 寻宝
    [NOIP 2012普及组 No.1] 质因数分解
    [NOIP 2013普及组 No.4] 车站分级
    [NOIP 2013普及组 No.3] 小朋友的数字
    [NOIP 2013普及组 No.2] 表达式求值
    [NOIP 2013普及组 No.1] 计数问题
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10494746.html
Copyright © 2011-2022 走看看