拦截器

  •     依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架。在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理

     

    1. 在spring-mvc配置文件中配置拦截器
    <!--配置拦截器-->
    
        <mvc:interceptors>
    
           <mvc:interceptor>
    
                <mvc:mappingpath="/**"/>
    
               <mvc:exclude-mapping path="/**/fonts/*"/>
    
               <mvc:exclude-mapping path="/**/*.css"/>
    
               <mvc:exclude-mapping path="/**/*.js"/>
    
               <mvc:exclude-mapping path="/**/*.png"/>
    
               <mvc:exclude-mapping path="/**/*.gif"/>
    
               <mvc:exclude-mapping path="/**/*.jpg"/>
    
               <mvc:exclude-mapping path="/**/*.jpeg"/>
    
               <mvc:exclude-mapping path="/**/*login*"/>
    
               <mvc:exclude-mapping path="/**/*Login*"/>
    
                <beanclass="com.kaishengit.crm.controller.intercepter.LoginIntercepter"/>
    
           </mvc:interceptor>
    
        </mvc:interceptors>
    1. 创建拦截器类 extends HandlerInterceptorAdapter

    重写preHandler方法

    return true

    通过

    return false

    拦截

    /**
    
     * 登录状态拦截器
    
     * Created bySPL on 2017/7/19 0019.
    
     */
    
    public class LoginIntercepter extends HandlerInterceptorAdapter{
    
        /**
    
         * 除了 /之外其他请求,都要判断是否登录(session)
    
             *return true;通过
    
             *return false;拦截
    
         * @paramrequest
    
         * @paramresponse
    
         * @paramhandler
    
         * @returnboolean
    
         * @throwsException
    
         */
    
        @Override
    
        public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {
    
            String url =request.getRequestURI();
    
           if(url.startsWith("/static/")){
    
                return true;
    
            }
    
           if("/".equals(url)){
    
                return true;
    
            } else{
    
                HttpSessionsession = request.getSession();
    
               if(session.getAttribute("currentUser") == null){
    
                   response.sendRedirect("/");
    
                    return false;
    
                }else{
    
                    return true;
    
                }
            }
        }
    }

     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值