它允许您在单个servlet实例上具有多个servlet映射(甚至分布在多个
web.xml/
web-fragment.xml文件中),而不必为每个映射创建单独的实例:
<servlet> <servlet-name>someServlet</servlet-name> <servlet-class>com.example.SomeServlet</servlet-class></servlet><servlet-mapping> <servlet-name>someServlet</servlet-name> <url-pattern>/enroll</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>someServlet</servlet-name> <url-pattern>/pay</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>someServlet</servlet-name> <url-pattern>/bill</url-pattern></servlet-mapping>
(注意:是的,每个映射可以有多个URL模式,但这不能涵盖将它们拆分为多个web.xml
/ web-fragment.xml
文件的情况)
它允许您在特定的servlet上映射过滤器,而不必担心该servlet将/将使用什么URL模式:
<filter-mapping> <filter-name>someFilter</filter-name> <servlet-name>someServlet</servlet-name></filter-mapping>
您的建议将不支持它们。
请注意,自从Servlet
3.0推出以来已经有将近4年的时间(2009年12月;请确保您使用最新的资源来学习这件事……任何超过1至3年的内容都应仔细检查),您可以轻松地使用
@WebServlet注释最小化
web.xml样板:
@WebServlet("/servletURL")public class SomeServlet extends HttpServlet {}仅此注释就已经将其映射到
/servletURL没有任何
web.xml输入的URL模式。



