servlet 的“显示名称”有啥用?
Posted
技术标签:
【中文标题】servlet 的“显示名称”有啥用?【英文标题】:What is a servlet's "display-name" for?servlet 的“显示名称”有什么用? 【发布时间】:2011-04-17 20:14:04 【问题描述】:根据Servlet 2.5 deployment descriptor XSD,<display-name>
元素似乎是<servlet>
元素的有效子元素。也就是说,根据 Eclipse 的 XML 验证器,这样:
<servlet>
<servlet-name>FooServlet</servlet-name>
<display-name>FooServlet</display-name>
<servlet-class>com.bar.servlet.FooServlet</servlet-class>
</servlet>
是一个有效的servlet-mapping
,而这个:
<servlet>
<servlet-name>FooServlet</servlet-name>
<random-tag-name>OMGWTFBBQ</random-tag-name>
<servlet-class>com.bar.servlet.FooServlet</servlet-class>
</servlet>
不是(这似乎很合理)。
display-name
的实际用途是什么?我一直无法挖掘任何关于它的信息。
【问题讨论】:
【参考方案1】:<display-name>
元素是<servlet>
的子元素。这些是 web.xml 部署描述符文件中使用的元素。 <display-name>
是可选的,它允许将短名称与 servlet 相关联,如果需要,可以通过 GUI 工具(例如 Web 浏览器)潜在地读取该短名称,以便将 servlet 的名称按字面意思显示给客户端。但是,在实践中,它几乎从未使用过,因此可以放心地忽略。
【讨论】:
【参考方案2】:<servlet-name>
是 servlet 的规范内部名称,用作将 url-patterns 等内容链接到 servlet 的关键。 <display-name>
供管理工具等使用。
当您考虑到 XML Schema 允许多个 <display-name>
元素用于各种语言时,这可能更有意义,例如
<servlet>
<servlet-name>MyServlet</servlet-name>
<displayable-name xml:lang="en">My Servlet</displayable-name>
<displayable-name xml:lang="fr">Ma Servlet</displayable-name>
</servlet>
(请原谅我的弗朗莱)
【讨论】:
Frenglais
和 canonical
。我大致了解<servlet-name>
的用途(真的对那部分并不感到困惑),但“规范”是描述它的词。【参考方案3】:
The optional display-name element specifies the Web application display name, a short name that can be displayed by GUI tools.
【讨论】:
【参考方案4】:servlet-name
用于引用其他标签中的 servlet(如 servlet-mapping
)。这可以被认为是 servlet 的“内部名称”。 display-name
是 servlet 的“外部名称”——它应该出现在 servlet 容器的管理控制台上。通常,Web 应用程序作为一个单元进行管理 - 它们被部署/取消部署/重新启动/等。作为一个整体,不管理单个 servlet - 因此您通常不会看到使用此显示名称的地方。
【讨论】:
【参考方案5】:我相信它主要用于 J2EE Web 管理控制台,用于显示统计信息等。
【讨论】:
以上是关于servlet 的“显示名称”有啥用?的主要内容,如果未能解决你的问题,请参考以下文章
JSP中站点中的WEB-INF下的web.xml文件有啥用呢?一般写啥内容的?
web.xml中的servlet配置的url-pattern和URL有啥关系吗?