我目前有一个带有以下注释的主控制器servlet:
@WebServlet(name="ControllerServlet", urlPatterns={"/", "/home"})
我项目中的/resources
目录下有.js和.css文件,我的.jsp文件引用,链接被发送到我不想要的主控制器。我创建了第二个servlet来处理带有nn注释的.js .css文件:
@WevServlet(name="ResourceServlet", urlPatterns={"/resources"})
希望它能接收来自我的.jsp文件的请求,但是ControllerServlet仍在接收它们。如何将/ resources url定向到我的ResourceServlet?
答案 0 :(得分:1)
url模式/
匹配其他映射不匹配的任何内容。如果你有
@WebServlet(name="ResourceServlet", urlPatterns={"/resources"})
然后请求,例如。 localhost:8080/context/resources
将处理ResourceServlet
,但localhost:8080/context/resources/somescript.js
的请求不会,因为它与ResourceServlet
的网址格式不匹配。因此,ControllerServlet
会处理它。
您需要将ResourceServlet
映射更改为
@WebServlet(name="ResourceServlet", urlPatterns={"/resources/*"})