为什么 web.xml 从 servlet 3.0 中删除

dee*_*pak 0 java servlets web

为什么web.xml从servlet 3.0 中删除了?现在通过Java 完成配置。

Ste*_*n C 5

在 Servlet 3.0 中没有删除对 web.xml 的支持,并且(IMO)在可预见的未来不太可能删除它。

证据?如果您下载 Servlet 3.0 规范并搜索“web.xml”,您将看到大量对它的引用。

最有说服力的报价在A6.6

“如果 Web 应用程序不包含任何 Servlet、过滤器或侦听器组件,则不需要包含 web.xml。换句话说,仅包含静态文件或 JSP 页面的应用程序不需要存在 web.xml。 ”

它的意思是允许webapp忽略“web.xml”文件……但也允许包含一个。换句话说,它是可选的


那么为什么他们允许您省略“web.xml”呢?我能想到几个原因:

  • 往往更方便地做配置编程或通过注释那样!

  • 以不同的方式/地点进行配置是违反 DRY 原则的。如果您可以通过注释和/或显式调用在 Java 源代码中进行配置,为什么还要在 XML 中进行配置?

但归根结底,这是您的选择