在 Servlet 3.1 功能部件实现与 Servlet 3.0 实现中,URL 模式映射行为会有所不同。 在 Servlet 3.0 中,即使将同一 URL 模式映射到多个 Servlet,应用程序也可以成功启动。 在 Servlet 3.1 中,应用程序将无法启动,并且会抛出以下异常:
SRVE9016E: 无法对名为 [{1}] 的 servlet 插入映射 [{0}]。已对名为 [{2}] 的 servlet 定义了 URL 模式。
要解决此错误,请更新应用程序 URL 模式,以便将每个 URL 模式映射到单个 servlet。
此规则将标记映射到多个 servlet 的 URL 模式。在以下位置中指定 URL 模式:
web.xml 和 web-fragment.xml 文件中 <servlet-mapping> 元素内的 <url-pattern> 元素javax.servlet.annotation.WebServlet 注释上的 value 属性javax.servlet.annotation.WebServlet 注释上的 urlPatterns 属性有关 Servlet 3.1 行为更改的更多信息,请参阅以下资源:Servlet 3.1 behavior changes。