@WebServlet注释与web.xmlservlet 映射的优先顺序是什么?更具体地说,我们有一个用例,我们宁愿不修改web.xml但需要覆盖其中一个 servlet 映射。我们web.xml有类似的东西:
<servlet>
<servlet-name>foo</servlet-name>
<servlet-class>com.whatever.simple.foo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>foo</servlet-name>
<url-pattern>/foo/*</url-pattern>
</servlet-mapping>
我们正在考虑使用以下方法覆盖它:
@WebServlet("/foo/*")
public class OurCustomImplementation extends HttpServlet {
}
所以问题是:
- 规范是否允许我们添加一些参数来这样做(例如覆盖或优先参数)?
- 规范是否保证我们的类将始终覆盖
web.xml? - Tomcat 9+ 是否允许这样做,即使可能使用一些扩展?