文档章节

spring mvc中default servlet已经不适用鸟

ajavaloser
 ajavaloser
发布于 2012/09/03 22:56
字数 349
阅读 796
收藏 0

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

这种利用default servlet访问静态资源的方式在tomcat 6.0.30及以后版本中已经被禁用了
因为这为访问WEB-INF下的文件提供了便捷路径,例如http://localhost:8080/app/WEB-INF/web.xml之类的地址是可以访问的。

BalusC在https://issues.apache.org/bugzilla/show_bug.cgi?id=50026中提了bug,Mark Thomas说
the default servlet was never intended to be mapped to anything other than /

而6.0.30的changelog50026 中timw说: Add support for mapping the default servlet to URLs other than /. (timw),也许是我E文不够好,在我看来这两句完全矛盾

幸好在http://stackoverflow.com/questions/3822524/tomcat-serving-static-content中有很好的解决方案。

一种是用URLrewriter

web.xml:

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
...
<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/app/*</url-pattern>
</servlet-mapping>


urlrewrite.xml:

<urlrewrite default-match-type="wildcard">
    <rule>
        <from>/images/**</from>
        <to>/images/$1</to>
    </rule>
    <rule>
        <from>/scripts/**</from>
        <to>/scripts/$1</to>
    </rule>
    <rule>
        <from>/styles/**</from>
        <to>/styles/$1</to>
    </rule>
    <rule>
        <from>/**</from>
        <to>/app/$1</to>
    </rule>
</urlrewrite>

另一种是用<mvc:resources/>,不过这个标签好像在springmvc3.0.4之前有问题,不过之后的应该没问题了

网上还有其他人说用<mvc:default-servlet-handler/>,搞了半天没看明白怎么个使用,求指教

当然最简单的就是不用RESTful风格的URL,那样彻底没这方面问题,至少在非面向互联网的企业应用中应该还是可行的。

© 著作权归作者所有

共有 人打赏支持
ajavaloser
粉丝 18
博文 21
码字总数 4232
作品 0
浦东
高级程序员
私信 提问
一个简单的Spring MVC小例子,为什么总是报404错误

web.xml代码如下: spring-mvc-study2 springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc-servlet.xml 1 springmvc / index.jsp sp......

FlashRui
2017/01/17
346
1
spring mvc 访问静态文件的问题!请指教!

这是web—xml的配置 TalentCloud index.jsp default *.js default *.css default *.png default *.jpg default *.gif spring3mvc org.springframework.web.servlet.DispatcherServlet 1 spri......

Ales_小溪
2013/07/22
805
1
SpringMVC+Spring4.0+Hibernate 简单的整合

学习的初始 一个 Hello World。 1、搭建好环境 工欲善其事,必先利其 这是需要的jar 简单的说下 : standard.jar 这个jar包是我们在jsp中使用JSTL标签的时候用到的。你也可以使用SpringEL 。 ...

Jeremy_pan
2014/08/30
0
13
Spring3中js/css/jpg/gif等静态资源无法找到

最近项目中使用到Spring3,在感叹Spring3注解配置清爽的同时竟然出现了这个不和谐的事情,实在无法忍受 问 题:部署项目后程序加载或用浏览器访问时出现类似的警告,2011-01-19 10:52:51,646...

零度的魚
2014/02/19
0
0
spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置

转载于:http://www.loveweir.com/ 先从persistence.xml开始: <?xml version=”1.0″ encoding=”UTF-8″?> <persistence version=”2.1″ xmlns=”http://java.sun.com/xml/ns/persistenc......

weir2008
2014/12/02
0
1

没有更多内容

加载失败,请刷新页面

加载更多

springmvc源码解析之@EnableWebMvc一

说在前面 本次介绍MvcNamespaceHandler。关注“天河聊架构”微信公众号更多源码解析。 springmvc配置解析 @EnableWebMvc这个注解干了什么,初始化RequestMappingHandlerMapping 先看下这个注...

天河2018
3分钟前
1
0
Druid连接池一个设置引发的血案【abandon connection, open stackTrace】

今天在一台配置很低的机器上运行批量更新的程序~~~ 大概跑了三十分钟~~~这配置~~~这程序~~~ 然后华丽丽的报异常了~~~ 具体异常是这样的, DEBUG: (BaseJdbcLogger.java:132) ooo Using Con...

时刻在奔跑
5分钟前
1
0
idea中配置xml不自动提示解决方案

1.打开设置File-->Settings(或者Ctrl + Alt + S)--->Languages&Frameworks-->Schemas and DTDS 2.选择右上角的“+”进入添加界面 其中URI是你xml文件里引用该xsd文件的地址,File是你本地的...

小橙子的曼曼
12分钟前
1
0
SpringCloud系列第04节之注册中心Eureka高可用

简介 Eureka Server 也支持运行多实例,并以互相注册的方式(即伙伴机制),来实现高可用的部署 即每一台 Eureka 都在配置中指定另一个 Eureka 地址作为伙伴,它在启动时会向伙伴节点获取注册...

吴伟祥
14分钟前
2
0
Logstash读取Kafka数据写入HDFS详解

强大的功能,丰富的插件,让logstash在数据处理的行列中出类拔萃 通常日志数据除了要入ES提供实时展示和简单统计外,还需要写入大数据集群来提供更为深入的逻辑处理,前边几篇ELK的文章介绍过...

运维咖啡吧
17分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部