Matt Ball Matt Ball - 5 months ago 9
Java Question

What is a servlet's "display-name" for?

The

<display-name>
element appears to be a valid sub-element of the
<servlet>
element as per the Servlet 2.5 deployment descriptor XSD. That is, according to Eclipse's XML validator, this:

<servlet>
<servlet-name>FooServlet</servlet-name>
<display-name>FooServlet</display-name>
<servlet-class>com.bar.servlet.FooServlet</servlet-class>
</servlet>


is a valid
servlet-mapping
, while this:

<servlet>
<servlet-name>FooServlet</servlet-name>
<random-tag-name>OMGWTFBBQ</random-tag-name>
<servlet-class>com.bar.servlet.FooServlet</servlet-class>
</servlet>


is not (which seems reasonable enough).

What's the
display-name
actually used for? I haven't been able to dig up anything informative on it.

Answer

The <servlet-name> is the canonical, internal name of the servlet, and is used as the key linking things like url-patterns to servlets. <display-name> is for use by admin tools and the like.

This perhaps makes more sense when you consider that the XML Schema permits multiple <display-name> elements, for various languages, e.g.

<servlet>
   <servlet-name>MyServlet</servlet-name>
   <displayable-name xml:lang="en">My Servlet</displayable-name>
   <displayable-name xml:lang="fr">Moi Servlet</displayable-name>
</servlet>

(pardon my Frenglais)

Comments