Java EE - 寻找web.xml的通用规范

3
我是一个Java EE新手。我发现web.xml是许多servlet容器/应用服务器(如tomcat、glassfish等)使用的标准文件(部署描述符)。在许多教程中,我可以找到各种XML标记,我应该将自定义值放在某个地方以实现给定功能(在教程的上下文中)。但这相当混乱 - 我不知道是否可以在spring/tomcat中重用最初在glassfish/jsf中使用的标记(这只是一个示例问题)。是否有一个主要的Java EE规范来指导我在web服务器和使用的框架独立的情况下可以放置哪些标记?
我了解到例如tomcat为web.xml文件提供了一些特定选项,因此我想每个服务器的行为都会略有不同(就像Web浏览器可以以不同的方式解释HTML/CSS一样)。但是是否有一个主要的文档(独立于框架)?
3个回答

4
通常在Java世界中,有一个称为JSR的一般规范。例如,Servlet规范包含web.xml的定义(以及如何解释它)。有多个Servlet版本,它们由不同的JSR进行规定。例如,Servlet 2.4规范可以在此处找到:http://jcp.org/en/jsr/detail?id=154(它称为JSR-154)。
我认为该规范不允许不同的供应商使用不同的web.xml。相反,他们建议使用另一个文件来代替web.xml。因为Tomcat曾经是Servlets的参考实现(但现在不再是),我认为Tomcat对JSR非常严格。
现在,最新的Servlet规范是3.0(3.1即将推出)。

2

官方规范当然在上面提到的各种JSR中。

但是一个巧妙的方法是查看xml文件顶部的“schemaLocation”属性。将其放入Web浏览器中,您将获得XSD文档,其中包含所有标记和注释。

在这些规范中,您还将找到有关问题的第二部分的信息。注释提供配置,可以通过部署描述符(web.xml)中的值进行覆盖。每个应用程序服务器品牌也可能在自己的部署描述符中包括其他配置信息。即WEB-INF / jboss-web.xml

这些特定于供应商的部署描述符可能具有与web.xml相同名称的标记,并覆盖web.xml值。

web.xml(以及其他标准部署描述符)是标准化的。供应商特定的部署描述符由每个应用程序服务器供应商决定。


1
我认为你应该始终查看与你使用的应用服务器相关的文档。
例如,如果你正在使用WebSphere,请参考这里
对于WebLogic,请参考这里
有趣的是,在Servlet 3.0中,你可以通过使用注释创建一个不需要使用部署描述符的应用程序。但这并不意味着WEB.xml将不再使用。这里有一篇关于servlet 3.0的好文章。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接