创建Springmvc项目时,特殊拦截器失效情况的原因及解决办法
最近开发一个新项目时,搭建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项目时,特殊拦截器失效情况的原因及解决办法的更多相关文章
- Android Studio创建/打开项目时一直处于Building“project name”Gradle project info的解决办法
重新安装了Android studio 之后, 启动android studio,打开原来的项目,界面一直停留在: 一直停留在此界面的原因是:Android studio 在下载 Gradle ,但是 ...
- Android Studio 创建/打开项目时一直处于Building“project name”Gradle project info 的解决
最近发现新版的AS,IDEA毛病不断,而且gradle的更新又给墙了,无奈啊! 进入类似如下的目录,发现如果没有对应的gradle解压文件,则在gradle官网下载完整压缩包,放入类似55xxxx串号 ...
- spring boot 2.x拦截器导致静态资源404终极解决办法
首先添加application文件static路径,我的是yml文件 spring: mvc: static-path-pattern: /static/**然后注册拦截器类如下方法; @Overri ...
- Eclipse中发布Maven管理的Web项目时找不到类的问题根源和解决办法(转)
转自:http://blog.csdn.net/lvguanming/article/details/37812579?locationNum=12 写在前面的话 现在是越来越太原讨厌Eclipse这 ...
- VS2010 VC++ 项目添加引用 出现 Internal CPS Error问题原因及解决办法
在VS2010 VC++ 项目添加引用时,有时会出现Internal CPS Error错误,提示信息: 'Internal CPS Error: We couldn't find the exist ...
- AndroidStudio创建项目时一直处于building“project name”gradle project info的解决办法
AndroidStudio创建项目,最后一步finish后,一直长时间处于building“project name”gradle project info,界面就一直停留在如图所示: 谷歌自家的产品 ...
- 【IDEA】创建maven项目时,报错[FATAL_ERROR] Cannot start Maven: Cannot find JRE '1.7'
在使用IDEA使用maven创建springMVC项目时,出现下面的错误,导致无法创建生成正常的springMVC项目结构,而只有一个pom文件: [FATAL_ERROR] Cannot start ...
- 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包
今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, 在网上搜了一下,这个问题是因为web项目没有添加服务器导致的. 配置tomec ...
- idea 为模块添加Tomcat依赖 解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包
解决: Intelij IDEA 创建WEB项目时没有Servlet的jar包 今天创建SpringMVC项目时 用到HttpServletRequest时, 发现项目中根本没有Servlet这个包, ...
随机推荐
- 10-RabbitMQ-整合SpringBoot
RabbitMQ整个SpringBoot SpringBoot因其配置简单.快速开发,已经成为热门的开发之一 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息 而消 ...
- ajax几种请求几种类型
jquery向服务器发送一个ajax请求后,可以返回多种类型的数据格式,包括:html,xml,json,text等. 首先说一下jquery中ajax标准的格式. $.ajax({ url: &qu ...
- ethereumjs/merkle-patricia-tree-2-API
SecureTrie src/secure.js:10-15 Extends Trie 扩展前缀树 You can create a secure Trie where the keys are au ...
- PAT——1040. 有几个PAT
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T):第二个PAT是第3位(P),第4位(A),第6位(T). 现给定字符串,问一共可以形成多少个P ...
- HDU 1165 Eddy's research II(给出递归公式,然后找规律)
- Eddy's research II Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1224 Free DIY Tour(spfa求最长路+路径输出)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1224 Free DIY Tour Time Limit: 2000/1000 MS (Java/Oth ...
- Reading SBAR SDN flow-Based monitoring and Application Recognition
概要 在sdn下,控制平面基于网络测量的的数据控制网络,而细粒度的管理得益于细粒度的测量数据.针对sdn环境下的细粒度测量(识别具体应用程序),可以实现对细粒度的流量管控. 设计了识别系统SBAR,对 ...
- TestNG+Maven+IDEA 自动化测试(一) 环境搭建
示例代码: https://github.com/ryan255/TestNG-Demo 所需环境: 1. IDEA UItimate 2. JDK 3. Maven 创建工程 一开始创建一个普通的m ...
- js节点操作实例
写了一个简单的小例子来引用js实例 1. 初步节点操作: 2.兼容性节点操作: 3.节点的类型,名字: 4.使用setAttribute设置属性 5.节点复制操作: 6.删除和替换节点 如有错误,还望 ...
- PHP几种常见魔术方法与魔术变量解析
原文地址:http://small.aiweimeng.top/index.php/archives/49.html 先不多说,直接上代码,如下: class Demo { private $str ...