spring mvc 拦截器怎么拦截jsp页面

你这个 是拦截带 /jsp 的 .do请求

解决方案
用spring 的拦截器 去拦截 所有的 .do 请求,
然后写一个 过滤器去拦截 所有的.jsp 的请求
这样才能防止循环过滤

这种会把所有jsp请求过滤不推荐。

<filter><filter-name> loginFilter</filter-name><filter-class>net.techfinger.yoyoapp.interceptor.CheckLoginFilter</filter-class></filter><filter-mapping><filter-name>loginFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping><servlet-mapping><servlet-name>Spring-Servlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>
public class CheckLoginFilter implements Filter{@Overridepublic void destroy() {// TODO Auto-generated method stub}@Overridepublic void doFilter(ServletRequest servletRequest,ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;HttpSession session = request.getSession();// 获得用户请求的URIString path = request.getRequestURI();String contextPath = request.getContextPath();String url = path.substring(contextPath.length());Person person =SessionUtils.getPerson(request);if (person == null) {response.sendRedirect(contextPath+"/person.do?method=tologin");return;}if (person.getId()!=null&&person.getPassword()!=null) {filterChain.doFilter(servletRequest, servletResponse);return;}}@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}
}public class AuthInterceptor extends HandlerInterceptorAdapter {private final static Logger log= Logger.getLogger(AuthInterceptor.class);@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {HandlerMethod method = (HandlerMethod)handler;Auth auth = method.getMethod().getAnnotation(Auth.class);验证登陆超时问题 auth = null,默认验证 if( auth == null || auth.verifyLogin()){String baseUri = request.getContextPath();String path = request.getServletPath();Person person =SessionUtils.getPerson(request);if(person == null){if(path.endsWith(".jsp")){response.setStatus(response.SC_GATEWAY_TIMEOUT);response.sendRedirect(baseUri+"/person.do?method=tologin");return false;}else{response.setStatus(response.SC_GATEWAY_TIMEOUT);Map<String, Object> result = new HashMap<String, Object>();/*    result.put("success", false);result.put("logoutFlag", true);//登录标记 true 退出result.put("msg", "登录超时.");XmlUtil.sendMsg(response, result);*/response.sendRedirect(baseUri+"/person.do?method=tologin");return false;}}}//验证URL权限if( auth == null || auth.verifyURL()){/*        //判断请求的url,是否包含在该角色的url里String methodName=request.getParameter("method");String menuUrl = StringUtils.remove(request.getRequestURI(),request.getContextPath())+"?method="+methodName;System.out.println(menuUrl);if(!SessionUtils.isAccessUrl(request, StringUtils.trim(menuUrl))){                    //日志记录String userMail = SessionUtils.getPerson(request).getLoginName();String msg ="URL权限验证不通过:[url="+menuUrl+"][email ="+ userMail+"]" ;log.error(msg);response.setStatus(response.SC_FORBIDDEN);Map<String, Object> result = new HashMap<String, Object>();result.put("success", false);result.put("msg", "没有权限访问,请联系管理员.");XmlUtil.sendMsg(response, result);return false;}*/}return super.preHandle(request, response, handler);}

spring mvc 拦截器拦截jsp页面相关推荐

  1. 【Spring MVC】自定义拦截器 Interceptor

    一.自定义拦截器 1.拦截器,跟过滤器比较像的技术. 1.1 拦截器和过滤器的区别: 拦截器只能拦Controller,Filter可以拦任何请求 因为Spring的入口是dispatcherServ ...

  2. Spring MVC中的拦截器/过滤器HandlerInterceptorAdapter的使用

    转载自 https://www.cnblogs.com/EasonJim/p/7704740.html 一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的 而在Spring中,基于Filt ...

  3. spring mvc中的拦截器

    本文说下spring MVC中的拦截器 文章目录 拦截器介绍 拦截器注入适配器 自定义拦截器 controller测试 测试结果 本文小结 拦截器介绍 拦截器是在servlet执行之前执行的程序(这里 ...

  4. vue拦截器刷新登陆页面_Vue + Spring Boot 项目实战(六):前端路由与登录拦截器-Go语言中文社区...

    前言 这一篇主要讲前端路由与登录拦截器的实现.放在一起讲是因为我在开发登录拦截器时因为这个路由的问题遇到了很多坑,花费了很长时间,网上的解决方案都不怎么靠谱,综合了好几种办法才最终成功,其实关于这个部 ...

  5. 在JSP中常见问题,防止SpringMVC拦截器拦截js等静态资源文件的解决方案

    在JSP中常见问题,防止SpringMVC拦截器拦截js等静态资源文件的解决方案 参考文章: (1)在JSP中常见问题,防止SpringMVC拦截器拦截js等静态资源文件的解决方案 (2)https: ...

  6. spring拦截器 拦截和排除接口冲突

    以下为springboot案例: 场景:  某个规则下的绝大部分接口路径不需要经过拦截器, 但其中的某几个接口又需要经过拦截器. 例如: "/api/register/**" 模式 ...

  7. [Spring mvc 深度解析(三)] 创建Spring MVC之器

    第9章 创建Spring MVC之器 ​ 本章将分析Spring MVC自身的创建过程.首先分析Spring MVC的整体结构,然后具体分析每一层的创建过程. 1 整体结构介绍 Spring MVC中 ...

  8. 使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)

    摘要:首先这个Decorator解释一下这个单词:"装饰器",我觉得其实可以这样理解,他就像我们用到的Frame,他把每个页面共有的东西提炼了出来,也可能我们也会用各种各样的inc ...

  9. 【项目经验】拦截器拦截入参出参

    文章目录 拦截器拦截入参出参 入参 出参 拦截器拦截入参出参 入参 @Overridepublic boolean preHandle(HttpServletRequest request, Http ...

  10. 关于JSP页面无法加载css,游览器访问jsp页面样式未生效导致乱序

    关于JSP页面无法加载css,游览器访问jsp页面样式未生效导致乱序 1.修改自己过滤器中对编码格式的修改 如图: 代码如下: public void doFilter(ServletRequest ...

最新文章

  1. WebService到底是什?
  2. 【Python数据结构】 抽象数据类型 Python类机制和异常
  3. CentOS 7 定时计划任务设置
  4. linux节点ssh免密码登录linux节点
  5. 微软发布Visual Studio Mac预览版
  6. 来看看深度学习如何在文娱行业“落地”
  7. 【学习笔记】JAVA快捷键
  8. 《微机原理与应用》题库
  9. 我国家庭计算机最快方式,选择哪种方式上网对家庭电脑更实惠,更快速?
  10. awr报告分析 mysql_生成awr报告
  11. uva 10099(最短路径)
  12. 配置Kafka的参数auto.offset.reset时earliest和latest的区别
  13. 犹他州计算机科学,美国犹他州立大学计算机系终身教授承恒达博士访问学科部...
  14. 做BI财务数据分析,国产BI软件经验更足
  15. 高新技术企业3年认定过期了怎么办
  16. 暴力破解MD5密码[单线程]
  17. Java实现登录查重实例
  18. mie散射理论方程_Mie光散射理论的数值计算方法.pdf
  19. 计算机教师的名言是,教师格言大全_名人名言
  20. 原生JS-浏览器兼容性问题总结

热门文章

  1. 如何进入Docker容器
  2. js轮播图(自动轮播 箭头轮播 序号轮播)
  3. 新手如何画出自定义View(Android——自定义折线图)
  4. AD18图纸信息(右下角)信息设置
  5. 王者荣耀:必须要学会的七个技巧,不然活该你连输100场!
  6. 机器学习项目实战-能源利用率 Part-3(特征工程与特征筛选)
  7. 为何苹果没能摆脱对三星OLED面板的依赖?
  8. python 获取当前时间,精确到毫秒
  9. yolov5结果解析
  10. 3D Object Detection for Autonomous Driving: A Survey(自动驾驶中的3D目标检测综述)论文阅读笔记