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

    一、InterceptorRegister

    package com.muen.interceptor;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    
    @Configuration
    public class InterceptorRegister extends WebMvcConfigurerAdapter {
    
        private static final Logger logger = LoggerFactory.getLogger(InterceptorRegister.class);
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            InterceptorRegistration ir = registry.addInterceptor(new MyInterceptor());
            /** 拦截所有路径 */
            /* ir.addPathPatterns("/**"); */
            /** 不拦截获取验证码请求路径 */
            /* ir.excludePathPatterns("/getBizId"); */
            /** 拦截个人中心 */
            ir.addPathPatterns("/Accounts/**");
            /** 拦截家庭档案 */
            ir.addPathPatterns("/FamilyFile/**");
            /** 拦截健康档案 */
            ir.addPathPatterns("/HealthyArchives/**");
            /** 健康自测 */
            ir.addPathPatterns("/HealthTest/**");
            /** 体检报告 */
            ir.addPathPatterns("/ExamineReport/**");
            /** 家庭医生 */
            ir.addPathPatterns("/familydoctor/**");
            /** 指标趋势 */
            ir.addPathPatterns("/canvasManage/**");
            super.addInterceptors(registry);
        }
    
    }

    二、MyInterceptor

    package com.muen.interceptor;
    
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.log4j.Logger;
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    import com.muen.util.Constants;
    import com.muen.util.StringUtils;
    
    
    /**
     * @author MyPC
     */
    public class MyInterceptor implements HandlerInterceptor {
    
        private Logger logger = Logger.getLogger(MyInterceptor.class);
    
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {
            logger.info("preHandle...");
            String path = request.getServletPath();
            // 不需要的拦截直接过;不需要拦截的请求配置在这个属性里面加
            if (path.matches(Constants.NO_INTERCEPTOR_PATH)) {
                return true;
            } else {
                // TODO:这写你拦截需要干的事儿,比如各种判断等
                //没有登录
                if (StringUtils.isBlank(request.getSession().getAttribute("personalInfo"))) {
                    if (StringUtils.isBlank(request.getSession().getAttribute("personalBaseInfo"))) {
                        logger.info("没有登录,被拦截了,跳转到登录页面...");
                        request.getRequestDispatcher("/personal/login").forward(request, response);
                        return false;
                    } else {
                        return true;
                    }
    
                }
                return true;
            }
        }
    
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
                               ModelAndView modelAndView) throws Exception {
            logger.info("postHandle...");
    
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
                throws Exception {
            logger.info("afterCompletion...");
        }
    
    
    }

    PS:根据项目需求自行修改

  • 相关阅读:
    制作基于OK6410的文件系统(2.修改busybox文件系统,使之能启动)
    [转]SlickEdit 2012
    移植TPLINK TLWN721N 驱动到micro2440(by liukun321咕唧咕唧)
    擦,买到了伪劣的SD卡
    Slickedit中文显示与输入
    OMAP3530mini调试笔记(2)
    最近在做linux的移植工作
    嵌入式linux启动时运行的inittab文件(zz)
    OMAP3530mini调试笔记(1)
    Ubuntu中音量调节无效的解决方法
  • 原文地址:https://www.cnblogs.com/TangJiaXin/p/12929737.html
Copyright © 2011-2022 走看看