zoukankan      html  css  js  c++  java
  • springmvc拦截器

    HandlerInterceptorAdapter

    1,定义拦截器类

    package testweb;
    
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
    
    public class LoginInterceptor extends HandlerInterceptorAdapter {
        private static final Logger log = LoggerFactory.getLogger(LoginInterceptor.class);
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {
            //do
            return true;
        }
        
    }
    View Code

    2,配置xml

    <mvc:interceptors>
            <mvc:interceptor>
                <mvc:exclude-mapping path="/js/**" />
                <!--******-->
                <mvc:exclude-mapping path="/logout" />
                <bean class="testweb.LoginInterceptor" />
            </mvc:interceptor>
            <mvc:interceptor>
               <mvc:exclude-mapping path="/js/**" />
                <!--******-->
                <mvc:exclude-mapping path="/logout" />
                <bean class="com.github.miemiedev.mybatis.paginator.springmvc.PageListAttrHandlerInterceptor" />
            </mvc:interceptor>
        </mvc:interceptors>
    View Code

     3.拓展

    @参考文章

    spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承此类,可以非常方便的实现自己的拦截器。他有三个方法:
    
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)    
                throws Exception {    
                return true;    
            }    
            public void postHandle(    
                    HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)    
                    throws Exception {    
            }    
            public void afterCompletion(    
                    HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)    
                    throws Exception {    
            }    
    
    
    分别实现预处理、后处理(调用了Service并返回ModelAndView,但未进行页面渲染)、返回处理(已经渲染了页面)
    在preHandle中,可以进行编码、安全控制等处理;
    在postHandle中,有机会修改ModelAndView;
    在afterCompletion中,可以根据ex是否为null判断是否发生了异常,进行日志记录。
    View Code
  • 相关阅读:
    页面跳转时,统计数据丢失问题探讨
    模拟form提交数据
    mysql学习问题解决
    20200824_小程序自动化测试与失败用例截图
    20200819_App自动化测试框架实战-这两天的很重要
    20200817_多点触摸操作和Hybrid应用自动化
    20200814_App元素定位&滑动操作
    20200812_adb常用命令&第一个App自动化测试脚本
    20200810_TestNG单元测试框架&App自动化环境部署
    20200807_Maven项目构建&TestNG单元测试框架
  • 原文地址:https://www.cnblogs.com/yanan7890/p/6641689.html
Copyright © 2011-2022 走看看