我目前有一个带有以下注释的主控制器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/*"})