【发布时间】:2014-01-15 11:56:02
【问题描述】:
我需要为特定功能配置我的 Tomcat WAR,但不确定是否可以全部通过 web.xml 完成,或者我是否需要实现 1+ 自定义 Filters,或者使用其他类型的黑客。
我的应用打包为myapp.war。因此,当它从本地 Tomcat 实例提供服务时,我可以通过转到 http://localhost:8080/myapp 来访问它。
很简单,如果 Tomcat 收到以下请求,我希望得到一个 welcome-file (myapp.html):
- localhost:8080/myapp
- localhost:8080/myapp/
- localhost:8080/myapp/#
- localhost:8080/myapp/#
...其中<blah> 是井号 (#) 之后的任何字符串/正则表达式。
因此,如果用户转到http://localhost:8080/myapp,则返回myapp.html。如果用户去http://localhost:8080/myapp/#fjrifjri,那你猜怎么着?回复myapp.html。
但是,如果用户转到 http://localhost:8080/myapp/fizz,那么我希望正常的 web.xml servlet-mapping 逻辑启动,并且我希望 Tomcat 提供任何映射到 @987654335 的 servlet @等
目前我的web.xml 看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
<welcome-file-list>
<welcome-file>myapp.html</welcome-file>
</welcome-file-list>
</web-app>
我怎样才能做到这一点?
【问题讨论】:
-
JAX-RS 资源可以工作。可能还有很多其他方式。
-
根据您当前的配置,哪些情况有效,哪些无效?
-
谢谢@MarcelStör (+1) - 你是说我已经有这个工作了吗?如果是这样,这怎么可能?!?
-
关于配置 URL 映射的附加信息请阅读this answer。
-
磅符号指定给定页面(在本例中为欢迎页面)中的目标位置,如果目标不存在,则页面显示相同。
标签: java tomcat servlets web.xml servlet-filters