Java拦截器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java拦截器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2850字,纯文字阅读大概需要5分钟。
内容图文
一、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:根据项目需求自行修改
内容总结
以上是互联网集市为您收集整理的Java拦截器全部内容,希望文章能够帮你解决Java拦截器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。