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
  • 相关阅读:
    6-4.粗体标签
    [Unity3D] 如何实现点击按钮退出游戏
    [Unity3D] 载入游戏地图时背景图片随机切换 & 数字百分比进度条
    [Unity3D] 鼠标点击图片移动效果
    [3DMAX]如何将骨骼与模型绑定在一起(蒙皮) & 如何实现自动化人物模型蒙皮
    [Unity 3D]用鼠标滚轮实现镜头放大和缩放,并添加距离限制
    [Unity3D] 如何实现围绕旋转
    [Unity3D] 如何实现注视旋转
    Css 图片自适应
    Scss 定义内层class的简单写法
  • 原文地址:https://www.cnblogs.com/yanan7890/p/6641689.html
Copyright © 2011-2022 走看看