被多人误解的url-pattern配置为"/"和"/*"的区别
2018-02-27 18:04
316 查看
为什么说被多人误解,因为大多人都把配置“/”理解成不能拦截后缀名的,其实这种理解是错误的!
它其实也能拦截“.js”,“.css”,".png"等静态资源的访问。
为什么?
因为<url-pattern>/</url-pattern>在Tomcat服务器是默认的servlet;通过查看Tomcat web.xml可得知,
它除了能够处理静态资源还能够处理HTTP缓存请求,媒体(音频/视频)数据流和文件下载简历。所以如果我们的项目中配置了"/",会覆盖掉tomcat中的default servlet。
所以当springMVC的前端控制器配置为“/”时,需要在主配置文件中配置放行静态资源。
第一种:
<!-- 放行静态资源 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/js/**"/>
<mvc:resources location="/images/" mapping="/js/**"/>
第二种:
<mvc:default-servlet-handler />
它其实也能拦截“.js”,“.css”,".png"等静态资源的访问。
为什么?
因为<url-pattern>/</url-pattern>在Tomcat服务器是默认的servlet;通过查看Tomcat web.xml可得知,
它除了能够处理静态资源还能够处理HTTP缓存请求,媒体(音频/视频)数据流和文件下载简历。所以如果我们的项目中配置了"/",会覆盖掉tomcat中的default servlet。
所以当springMVC的前端控制器配置为“/”时,需要在主配置文件中配置放行静态资源。
第一种:
<!-- 放行静态资源 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/js/**"/>
<mvc:resources location="/images/" mapping="/js/**"/>
第二种:
<mvc:default-servlet-handler />
相关文章推荐
- url-pattern配置为"/"和"/*"的区别
- url-pattern配置为"/"和"/*"的区别
- Spring配置中的"classpath:"与"classpath*:"的区别研究(转)
- Parse Fatal Error at line 41 column 24: 元素类型 "url-pattern" 必须由匹配的结束标记 "</url-pattern>" 终止
- Spring配置中的"classpath:"与"classpath*:"的区别研究(转)
- web.xml中url-pattern配置/和/*的区别
- url-pattern 配置 / 和 /* 的区别
- Servlet容器Tomcat中web.xml中url-pattern的配置详解[附带源码分析]
- 什么是“堆”,"栈","堆栈","队列",它们的区别?
- Servlet容器Tomcat中web.xml中url-pattern的配置详解
- input type="submit" 和"button"有什么区别
- C# 读取app.config配置文件 节点键值,提示 "System.TypeInitializationException 类型初始值设定项引发异常" 错误的解决方案
- App.config"配置系统未能初始化" 错误的解决方案
- js中的"=="和equals()以及is()三者的区别
- '\0'和"\0"的区别
- winfrom中出现" 配置系统未能初始化"
- tomcat报"The servlets named [x] and [y] are both mapped to the url-pattern[z] which is not permitted"
- 宏定义中的 "#" 和 "##" 的区别
- spring mvc 配置DispatchServlet 的<url-pattern>/</url-pattern>的写法