什么是servlet的"显示名称"?

Mat*_*all 22 java web.xml servlets

所述<display-name>元件似乎是一个有效的子元素<servlet>元素作为每个所述的Servlet 2.5部署描述符XSD.也就是说,根据Eclipse的XML验证器,这个:

<servlet>
    <servlet-name>FooServlet</servlet-name>
    <display-name>FooServlet</display-name>
    <servlet-class>com.bar.servlet.FooServlet</servlet-class>
</servlet>
Run Code Online (Sandbox Code Playgroud)

是有效的servlet-mapping,而这个:

<servlet>
    <servlet-name>FooServlet</servlet-name>
    <random-tag-name>OMGWTFBBQ</random-tag-name>
    <servlet-class>com.bar.servlet.FooServlet</servlet-class>
</servlet>
Run Code Online (Sandbox Code Playgroud)

不是(这似乎足够合理).

有什么display-name实际用途?我无法挖掘任何有关它的信息.

ska*_*man 18

<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>
Run Code Online (Sandbox Code Playgroud)

(原谅我的Frenglais)

  • "Frenglais"和"canonical"的+1.我一般都明白`<servlet-name>'是什么(实际上并没有对那部分感到困惑),但"规范"是_the_字来形容它. (2认同)

Nat*_*ate 7

servlet-name被用于指代在其他标记(例如小服务程序servlet-mapping).这可以被认为是servlet的"内部名称".这display-name是servlet的"外部名称" - 它应该出现在servlet容器的管理控制台上.通常,Web应用程序作为一个单元进行管理 - 它们被部署/取消部署/重新启动/等.作为一个整体,不管理单个servlet - 因此,通常不会看到使用此显示名称的位置.


bos*_*acs 5

我相信它主要由J2EE Web管理控制台使用,在显示统计信息等时.