我目前有一个带有以下注释的主控制器servlet:

@WebServlet(name="ControllerServlet", urlPatterns={"/", "/home"})


我的项目中/resources目录下的目录下有.js和.css文件,我的.jsp文件引用了这些链接,并且这些链接已发送到不需要的主控制器上。我制作了第二个servlet来处理带有nn批注的.js .css文件:

@WevServlet(name="ResourceServlet", urlPatterns={"/resources"})


希望它能够接收来自我的.jsp文件的请求,但ControllerServlet仍在接收它们。如何使/ resources网址定向到我的ResourceServlet?

最佳答案

网址格式/与其他映射不匹配的任何内容匹配。如果你有

@WebServlet(name="ResourceServlet", urlPatterns={"/resources"})


然后向localhost:8080/context/resources将由您的ResourceServlet处理,但不会发送给localhost:8080/context/resources/somescript.js的请求,因为它与ResourceServlet的网址格式不匹配。因此,ControllerServlet将处理它。

您需要将ResourceServlet映射更改为

@WebServlet(name="ResourceServlet", urlPatterns={"/resources/*"})

07-24 09:20