servlet-name 和 servlet-class 有何不同?

How is that servlet-name and servlet-class differs?

我遵循了 servlet 教程,在名为 HelloServlet.java 的 java 文件中创建了一个 servlet(HelloServlet)。将 .java 文件编译为 HelloServet.class.我的问题 1) servlet 的名称是否与 servlet 文件相同(已编译的 java 文件的名称)还是应该不同?

这是因为在我所遵循的示例中,他在 web.xml.

中设置了与 servlet-class 不同的 servlet-name

servlet-name 与 servlet class 名称无关。它用于 link servlet class 与 servlet 映射。在下面的示例中,我在声明一个 servlet 时使用了 servlet-name XXX,然后通过在映射文件中提供相同的 servlet-name

将其映射到测试 url
<servlet>
<servlet-name>XXX</servlet-name>
<servlet-class>className</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XXX</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>