java,tomcat:在web.xml中,标签web应用程序中的id属性是什么意思?

2022-09-04 02:31:25

web 应用标记的 web.xml id 属性的含义是什么?

Eclipse将其生成为id=“WebApp_ID”。我使用的是Servlet规范版本2.5,我切换到使用3.0版本,这个答案的建议不包括该id。

真的有必要吗?值应该是多少?


答案 1

较新版本的 servlet 规范使用 .xsd 文件,没有关于 id 属性的进一步信息,但是如果您返回到具有.dtd的旧版本,例如web_app_2_2.dtd,您会发现:

ID 机制允许工具轻松地对部署描述符的元素进行特定于工具的引用。这允许生成其他部署信息(即标准部署描述符信息之外的信息)的工具将非标准信息存储在单独的文件中,并轻松地从这些特定于工具的文件引用标准 Web 应用部署描述符中的信息。

例如,WebSphere Application Server 在其旧的 bnd 和 ext 文件中使用了 id 机制:

web.xml:
<web-app id="WebApp_ID" ...

ibm-web-app-bnd.xmi:
<webappbnd:WebAppBinding ...
  <webapp href="WEB-INF/web.xml#WebApp_ID"/>

(值得庆幸的是,对于 ibm-web-bnd/ext,使用较新的.xml文件格式,不再需要使用 id 属性,但开发人员对 id 属性的使用很烦人,但是我离题了。


答案 2

AFAIK 这是不需要的(根据DTD也是如此)。您可以将其注释掉,看看是否有效,我非常肯定该应用程序将加载完好。


推荐