0

web.xml是否可以在 Tomcat 7 上为 Web 部署描述符 ( ) 使用其他名称?如果有怎么办?

4

1 回答 1

3

servlet 规范说部署描述符是 WEB-INF/web.xml。这是所有工具和所有 servlet 容器/应用程序服务器都同意并知道要处理的内容。

你到底为什么要这样做?

在某些情况下,您根本不需要- 请参阅servlet 规范 3.0的 A.6.6 节

如果 Web 应用程序不包含任何 Servlet、Filter 或 Listener 组件,则它不需要包含 web.xml。换句话说,仅包含静态文件或 JSP 页面的应用程序不需要存在 web.xml。

编辑:回答您的评论,如果您想为两个不同的应用程序服务器提供两个不同的版本,您应该以不同的方式配置两个应用程序服务器(例如,通过提供不同的参数 - 例如阅读 JNDI 并使用它来连接到您的数据库),通过构建时更改,例如配置 ant 或 maven 以构建您的 webapp 的两个版本,或者在部署时 - 例如脚本部署和在部署步骤期间通过脚本更新 WAR 文件。

我之前错过了一个答案:Tomcat(以及 JBoss)是开源的。因此,从技术上讲,您可以使用不同的代码重新编译它以读取部署描述符。但是 a) 您将失去所有工具支持,因为没有 IDE 会期望此配置具有像 web.xml 中那样的任何效果(考虑读取 taglib 并指示有问题的 JSP)和 b) 您将像您一样创建维护噩梦必须为每个新的 tomcat 版本和没有人这样做,但你会期望任何自尊的网络服务器的这种行为

于 2013-04-06T14:09:03.790 回答