zoukankan      html  css  js  c++  java
  • spring拦截器的定义

    (一)、拦截器的定义

      1、为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的

      2、什么事拦截器:在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略

      3、如何用拦截器:在spring中用拦截器需要实现HandlerInterceptor接口或者它的实现子类:HandlerInterceptorAdapter,同时在applicationContext.xml文件中配置拦截器

    package edu.mybatis.interceptor;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    public class MyHandlerIntercepter implements HandlerInterceptor{
        
        //进入handler之前
        //身份认证,身份授权
        public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,
                Object arg2) throws Exception {
            System.out.println("lanjie=====1");
            return true;
        }
        //进入handler之后,返回modelandview之前
        //ModelAndView:将公用的模型数据(菜单导航)传到视图
        public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
                Object arg2, ModelAndView arg3) throws Exception {
            System.out.println("lanjie=====1");
            
        }
        //执行完handler之后
        //统一异常处理,统一日志处理
        public void afterCompletion(HttpServletRequest arg0,
                HttpServletResponse arg1, Object arg2, Exception arg3)
                        throws Exception {
            System.out.println("lanjie=====1");
            
        } 
    
    }

    4、配置applicationContext.xml文件

    <!--拦截器 -->
        <mvc:interceptors>
            <!--多个拦截器,顺序执行 -->
            <mvc:interceptor>
                <mvc:mapping path="/**"/>
                <bean class="edu.mybatis.interceptor.HandlerIntercepter"/>
            </mvc:interceptor>
        </mvc:interceptors>

    在这里<mvc:mapping path="...">表示你要拦截的文件路径,配置路径的时候需要注意:/**的意思是所有文件夹以及其子文件夹,而/*是所有文件夹,不包括子文件夹

  • 相关阅读:
    洛谷P3747 [六省联考2017]相逢是问候
    染色(dye)
    BZOJ1426: 收集邮票
    消息队列RabbitMQ
    CRM
    BBS
    版本控制
    RESTful API
    Luffy
    axios使用
  • 原文地址:https://www.cnblogs.com/googlemeoften/p/4699299.html
Copyright © 2011-2022 走看看