【发布时间】:2013-12-03 03:28:43
【问题描述】:
我一直在阅读Head First JSP 和 Servlet,我看到web.xml 有
<!-- To name the servlet -->
<servlet>
<servlet-name>ServletName</servlet-name>
<servlet-class>packy.FirstServlet</servlet-class>
</servlet>
<!-- For URL's to map to the correct servlet -->
<servlet-mapping>
<servlet-name>ServletName</servlet-name>
<url-pattern>/ServletURL</url-pattern>
</servlet-mapping>
为什么要隐藏原始 servlet 的位置?我可以简单地看到这是出于安全原因和更多这样的优势,但是为什么每个 servlet 都有一个名称?为什么web.xml 不能这么简单
<servlet>
<url-pattern>ServletURL</url-pattern>
<servlet-class>packy.FirstServlet</servlet-class>
</servlet>
【问题讨论】:
-
一个 servlet 可以有多个映射,在您建议的语法中,每个映射都有一个单独的 servlet 实例。除此之外,如果你想拥有同一个 servlet 的多个实例,但设置不同怎么办?!
-
一个典型的用例是你可以使用 * 来匹配任何东西,所以你可以这样做:
/images/* 来匹配所有对事物的请求/images 目录到单个 servlet。如果您需要图像缩放或图像访问控制,则很有用。