如何在 Tomcat 的 web.xml 中为欢迎文件映射过滤器?

Posted

技术标签:

【中文标题】如何在 Tomcat 的 web.xml 中为欢迎文件映射过滤器?【英文标题】:How to map a filter for welcome-file in web.xml for Tomcat? 【发布时间】:2012-04-26 20:20:36 【问题描述】:

我创建了一个Filter 来检查带有请求对象的Cookies 和forward 相应的请求,这要感谢this 和this 问题..现在我想映射这个Filter 只是welcome-file,正如我在 web.xml 中声明的那样。 假设我将welcome-file 设置为index.html,那么我必须为www.example.com/www.example.com/index.html 映射Filter,但不允许为其他任何东西,例如www.example.com/foo/*www.example.com/*,我的意思不是任何东西除了welcome-file 请求。 我正在使用 Apache Tomcat 7.0.22 容器。

【问题讨论】:

【参考方案1】:

只需将这些添加到您的 web.xml 中

<filter>
  <filter-name>myFilter</filter-name>
  <filter-class>com.examples.myFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>myFilter</filter-name>
  <url-pattern>/index.html</url-pattern>
</filter-mapping>

【讨论】:

这对www.example.com 案子有帮助吗? URL 模式不清楚 contanier 将提供什么文件? 是的,如果您没有更改 context.xml 中的主机名。 '/' 代表应用程序的根目录,并且 index.html 将被提供,因为您在欢迎文件中提到了相同的内容,它应该在 WebContent 文件夹中

以上是关于如何在 Tomcat 的 web.xml 中为欢迎文件映射过滤器?的主要内容,如果未能解决你的问题,请参考以下文章

Java web.xml 配置技巧—动态欢迎页地址--欺骗tomcat

web.xml 和/或过滤器返回欢迎文件

tomcat服务设置默认欢迎页

如何在 Tomcat web.xml 中添加标头?

web.xml详解

如何使用子文件夹作为 web.xml 欢迎目录