下面的 spring 控制器使用将请求转发到静态 JSP 路径RequestDispatcher.forward()
RequestDispatcher rs = getServletContext().getRequestDispatcher("/security/html/blah.jsp");
try {
rs.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
该代码在本地机器上运行良好。但是当我将它部署在云服务器上时,我得到一个堆栈跟踪说明
javax.servlet.ServletException:请求的 URI [//security/html/blah.jsp] 与资源路径模式不匹配
出于某种原因,在资源路径中添加了一个额外的斜杠,这导致了问题。如果我在地址栏中手动输入 URL(通过删除多余的斜杠),它可以工作。
由于它是内部转发,我什至不确定是否在本地机器中添加了额外的斜杠,因为下面的 URL(路径中有两个斜杠)在本地工作,但在云服务器上不起作用
IP:端口/上下文//安全/html/blah.jsp
我在下面的链接上看到了类似的问题(不幸的是,没有解决方案)