【问题标题】:Java EE - searching for web.xml general specificationJava EE - 搜索 web.xml 通用规范
【发布时间】:2013-02-12 07:54:43
【问题描述】:

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

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

【问题讨论】:

    标签: jakarta-ee web.xml specifications


    【解决方案1】:

    通常在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 即将推出)

    【讨论】:

      【解决方案2】:

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

      但一个方便的技巧是查看 xml 文件顶部的“schemaLocation”属性。将它放在网络浏览器中,您将获得包含所有标签和 cmets 的 XSD 文档。

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

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

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

      【讨论】:

        【解决方案3】:

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

        例如如果您使用的是 WebSphere see this

        对于 WebLogic see this

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

        【讨论】:

          猜你喜欢
          • 2020-02-29
          • 2015-09-07
          • 2016-09-02
          • 2016-10-25
          • 2020-02-16
          • 2016-02-13
          • 1970-01-01
          • 2011-11-02
          • 1970-01-01
          相关资源
          最近更新 更多