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>
  • 相关阅读:
    vscode安装设置go
    Go开发环境搭建
    使用Docker镜像
    Docker for mac安装
    封装request.get_params批量取值
    Python之日志处理(logging模块)
    Python3 urllib.parse 常用函数示例
    前端之CSS属性相关
    前端之CSS选择器
    前端之CSS介绍
  • 原文地址:https://www.cnblogs.com/ustc-anmin/p/10494746.html
Copyright © 2011-2022 走看看