最近开发一个新项目时,搭建springmvc框架时,遇到一个拦截器失效的情况困扰了两天。现在解决,特此记录一下。

拦截器不生效的情况描述:

  

设置登录拦截的时候,首先登录接口肯定是不用拦截的。所以需要在<mvc:interceptors>的标签中,添加<mvc:exclude-mapping>,作用是排除不需要拦截的请求。

但是,实际运行中,登录接口被拦截到了,也就是说<mvc:exclude-mapping>标签没起作用。

当时检查了所有可能的配置,包括头信息schema的版本引入,4.1算是比较新的,感觉应该都没问题的,可是始终无法解决。

后来找到了出现这个问题的原因:

问题还是出现在schema的引用。

从截图来看,schema引入的是4.1版本,算是比较新的,应该没问题。但是关键是,运行过程中,并没有使用4.1版本。

代码正常运行时,使用的版本实际上是pom文件中spring jar包的版本。

然后打开项目中的Maven Dependencies,

可以看到,实际jar包中的schemas版本只有3.1和3.0,而3.1版本的xsd是不支持<mvc:exclude-mapping>标签的。

所以,尽管我在spring-interceptor.xml的头位置配置了4.1的xsd,但是实际并不起作用,没有在实际的jar包中找到4.1版本的xsd文件。

解决办法:

就是讲spring系列的jar包版本改为比较新的版本,改为支持<mvc:exclude-mapping>标签的版本。

这时候,就会在Maven Dependencies中看到新的xsd。

可以看到,因为pom文件中配置的版本是4.2.2的,它会兼容之前的版本,生成的xsd文件中,已经包含之前版本的xsd。所以此时,在spring-interceptor.xml的头位置配置4.1的xsd,<mvc:exclude-mapping>标签就生效了,

就不会拦截登录接口或不需要拦截的请求了。

创建Springmvc项目时,特殊拦截器失效情况的原因及解决办法的更多相关文章

  1. Android Studio创建/打开项目时一直处于Building“project name”Gradle project info的解决办法

    重新安装了Android studio 之后, 启动android studio,打开原来的项目,界面一直停留在: 一直停留在此界面的原因是:Android studio 在下载 Gradle ,但是 ...

  2. Android Studio 创建/打开项目时一直处于Building“project name”Gradle project info 的解决

    最近发现新版的AS,IDEA毛病不断,而且gradle的更新又给墙了,无奈啊! 进入类似如下的目录,发现如果没有对应的gradle解压文件,则在gradle官网下载完整压缩包,放入类似55xxxx串号 ...

  3. spring boot 2.x拦截器导致静态资源404终极解决办法

    首先添加application文件static路径,我的是yml文件 spring: mvc: static-path-pattern: /static/**然后注册拦截器类如下方法; @Overri ...

  4. Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)

    转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...

  5. VS2010 VC++ 项目添加引用 出现 Internal CPS Error问题原因及解决办法

    在VS2010 VC++ 项目添加引用时,有时会出现Internal CPS Error错误,提示信息: 'Internal CPS Error: We couldn't find the exist ...

  6. AndroidStudio创建项目时一直处于building“project name”gradle project info的解决办法

    AndroidStudio创建项目,最后一步finish后,一直长时间处于building“project name”gradle project info,界面就一直停留在如图所示: 谷歌自家的产品 ...

  7. 【IDEA】创建maven项目时,报错[FATAL_ERROR] Cannot start Maven: Cannot find JRE '1.7'

    在使用IDEA使用maven创建springMVC项目时,出现下面的错误,导致无法创建生成正常的springMVC项目结构,而只有一个pom文件: [FATAL_ERROR] Cannot start ...

  8. 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包

    今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, 在网上搜了一下,这个问题是因为web项目没有添加服务器导致的. 配置tomec ...

  9. idea 为模块添加Tomcat依赖 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包

    解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包 今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, ...

随机推荐

  1. 随手练——HDU-2037 、P-2920 时间安排(贪心)

    普通时间安排 HDU-2037 :http://acm.hdu.edu.cn/showproblem.php?pid=2037 选取结束时间早的策略. #include <iostream> ...

  2. linq的左连接右连接内连接用法

    1.左连接: var LeftJoin = from e in ListOfEmployees join d in ListOfDepartment on e.DeptID equals d.ID i ...

  3. cocos2d-x 3.x 物理碰撞机制

    近期又弄了物理引擎.写一下吧,以下有在其它博客学习到的知识.加上自己的理解,总结下. cocos2d-x 3.X 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的 ...

  4. 大话Linux内核中锁机制之完成量、互斥量

    大话Linux内核中锁机制之完成量.互斥量 在上一篇博文中笔者分析了关于信号量.读写信号量的使用及源码实现,接下来本篇博文将讨论有关完成量和互斥量的使用和一些经典问题. 八.完成量 下面讨论完成量的内 ...

  5. 处理HTML表单(11)

    PHP和Web表单 <?php if(isset($_POST["name"])){//isset()函数设置变量是否设置,并且不能为空 $name = $_POST[&qu ...

  6. 获取url中?后面传递的参数

    function getUrlArgs(){ var url=location.href; var i=url.indexOf('?'); if(i==-1)return; var querystr= ...

  7. Java 深入理解内部类

    摘自海子:Java内部类详解 深入理解内部类 1.为什么成员内部类可以无条件访问外部类的成员? 在此之前,我们已经讨论过了成员内部类可以无条件访问外部类的成员,那具体究竟是如何实现的呢?下面通过反编译 ...

  8. vmware虚拟机下linux centos6.6只有lo,没有eth0网卡、随机分配ip地址,固定ip地址等问题

    这个问题卡了我一天多的时间,百度上搜出来的问题五花八门,反而把我给搞糊涂了.最后总算是实践成功了,记录一下配置的过程. 配置网卡和随机分配ip地址 我安装的是basic server版本,用的是NAT ...

  9. macOS,安装+配置+激活:MySQL8.0 + Navicat Premium12

    作者的电脑是10.13.3,些许配置偏差请自行略过 本文是学习探讨途径,请勿滥用,后果自负 MySQL8.0 篇章 官网http://www.mysql.com/downloads/ 下载即可,无需激 ...

  10. json数组按照日期先后排序

    var allMyApp = [ {"startDate": "2018-07-07 12:30:00",'name':'aa'}, {"startD ...