Java EE - 搜索web.xml通用规范

时间:2013-02-12 07:54:43

标签: java-ee web.xml specifications

我是Java EE的新手。我发现web.xml是许多servlet容器/应用程序服务器(如tomcat,glassfish等)使用的标准文件(部署描述符)。在许多教程中,我可以找到各种XML标记,我应该将自定义值放在某处以实现给定功能(在教程的上下文中)。但它很混乱 - 我不知道我是否可以重复使用最初在glassfish / jsf中使用的spring / tomcat中的标签(这只是一个示例问题)。 web.xml是否有一个主要的Java EE规范,以便我可以在Web服务器和使用的框架上独立地知道可以放在哪些标签上?

我看过这个,例如tomcat为web.xml文件提供了一些特定的选项,所以我猜每个服务器的行为都会有所不同(就像Web浏览器可以不同地解释HTML / CSS一样) - 但是某个地方是否存在主要文档(独立于框架)?

3 个答案:

答案 0 :(得分:4)

通常在java世界中通用规范称为JSR。例如,Servlet规范包含web.xml的定义(以及如何解释它)。有多个Servlet版本,它们由不同的JSR-s指定。例如,Servlet 2.4规范可以在这里找到:http://jcp.org/en/jsr/detail?id=154(它被称为JSR-154)

我认为规范不允许不同的供应商使用不同的web.xml-s。而不是他们建议使用web.xml的其他文件。因为Tomcat曾经是Servlets的参考实现(但不再是),我认为tomcat对JSR非常严格。

目前最新的servlet规范是3.0(3.1即将推出)

答案 1 :(得分:2)

官方规范当然是如上所述的各种JSR。

但是,一个方便的诀窍是查看' schemaLocation'属性位于xml文件的顶部。将它放在Web浏览器中,您将获得包含所有标记和注释的XSD文档。

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

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

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

答案 2 :(得分:1)

我认为您应该始终查看与您正在使用的应用程序服务器相关的文档。

e.g。如果您使用的是WebSphere see this

for WebLogic see this

有趣的是,在Servlet 3.0中,您可以通过使用注释创建一个完全不使用部署描述符的应用程序。这并不意味着WEB.xml 将不再使用。 here是一篇关于servlet 3.0的好文章。