Spring-MVC 登录拦截与静态资源冲突的问题
来源:互联网 发布:小号托管平台源码 编辑:程序博客网 时间:2024/06/06 03:11
前言:是个系统都会涉及到登录拦截,以前接触的是struts2,现在流行restful并且spring MVC给人更加随心所欲和自由的感觉,springMVC本身的实现比struts2更加直观更加符合组件的概念,这个不在本文中深入讨论。
上代码:
<span style="white-space:pre"></span><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><mvc:exclude-mapping path="/login/**"/><bean class="com.me.joker.interceptor.LoginInterceptor"/></mvc:interceptor></mvc:interceptors>
老一点的文章里,都只有
<mvc:mapping>
这个标签的使用;其实随着spring的发展,要排除某个url的拦截怎么会不考虑实现,所以就有了:
<mvc:exclude-mapping/>
如果你像我上面这样配拦截的url,并且你的spring拦截器拦截的是"/",那么恭喜你,你会发现你的loginPage上的css和js也一并被拦截了
哪怕你已经在xml中加了类似如下的配置:
<!--对于静态资源不拦截--><mvc:resources mapping="/js/**" location="/static/js/"/><mvc:resources mapping="/css/**" location="/static/css/"/><mvc:resources mapping="/img/**" location="/static/img/"/><mvc:resources mapping="/bootstrap/**" location="/static/bootstrap/" cache-period="86400"/>比较无脑的解决办法就是把拦截器的配置改成如下:
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/login/**"/> <mvc:exclude-mapping path="/js/**"/> <mvc:exclude-mapping path="/css/**"/> <mvc:exclude-mapping path="/bootstrap/**"/> <bean class="com.xxx.interceptor.LoginInterceptor"/> </mvc:interceptor></mvc:interceptors>
其实如果稍微有经验一点,最好的做法是,尽量不要把需要登录的url放在/路径下,比如所有登录后的url放在/main路径下
那么你的拦截器只需要配置
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/main/**"/> <bean class="com.me.joker.interceptor.LoginInterceptor"/> </mvc:interceptor></mvc:interceptors>类似这种拦截方式即可避免拦截所有路径的请求,直接避免了拦截js和css的请求。
当然稍微大一点的项目最好的办法是做静态分离,从静态服务器请求静态文件,直接一了百了完全不怕冲突了。
0 0
- Spring-MVC 登录拦截与静态资源冲突的问题
- spring mvc静态资源拦截问题
- Spring MVC 拦截静态资源的解决方案
- 解决Spring MVC DispatcherServlet拦截“/”时,无法访问静态资源的问题
- spring-mvc不拦截静态资源的配置
- 关于spring mvc不拦截静态资源的配置
- Spring MVC 框架不拦截静态资源的配置
- Spring MVC 解决静态资源的问题
- spring mvc 不拦截静态资源
- spring Boot 静态资源与拦截器
- 【转】Spring Mvc Web 配置拦截规则与访问静态资源
- Spring Mvc Web 配置拦截规则与访问静态资源 (三)
- spring mvc 静态资源处理遇到的问题
- 解决spring mvc静态资源无法访问的问题
- Spring MVC中css等静态资源被拦截解决办法
- Spring MVC实现的登录拦截器
- Spring MVC 自学杂记(七) -- 去掉静态资源的拦截
- Spring MVC 拦截器配置及使用(包括静态资源的处理)
- ExtJS Element Component DOM 的获取
- c++基础温习之指针分配空间
- 关于InstantiationException错误的原因
- 输入数字n,按顺序打印出从1到最大的n位十进制数
- iOS开发之使用Code Snippet创建代码片段
- Spring-MVC 登录拦截与静态资源冲突的问题
- 换钱的最少货币数
- 博客第一步
- 基于GephiSDK的数据可视化功能开发
- android混淆之从异常堆栈中还原ProGuard混淆过的代码
- 16.08.18
- hdu1863-畅通工程 最小生成树的并查集实现方法
- spark连接HDFS报错:8020 failed on connection exception: java.net.ConnectException: 拒绝连接 解决方法
- 手机端meta分别是什么意思