gpt4 book ai didi

java - ServletContext#getRequestDispatcher() 添加了额外的斜杠,导致云服务器上出现 "Requested URI does not match Resource path pattern"错误

转载 作者:行者123 更新时间:2023-12-02 06:21:06 25 4
gpt4 key购买 nike

下面的 Spring Controller 使用 RequestDispatcher.forward() 将请求转发到静态 JSP 路径

RequestDispatcher rs = getServletContext().getRequestDispatcher("/security/html/blah.jsp");                        
try {
rs.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}

代码在本地机器上运行得很好。但是当我将它部署在云服务器上时,我得到一个堆栈跟踪说明

javax.servlet.ServletException: Requested URI [//security/html/blah.jsp] does not match Resource path pattern

由于某种原因,资源路径中添加了额外的斜杠,这导致了该问题。如果我在地址栏中手动输入 URL(通过删除多余的斜杠),它就可以工作。

由于是内部转发,我什至不确定本地计算机中是否添加了额外的斜杠,因为下面的 URL(路径中带有两个斜杠)在本地工作,但在云服务器上不起作用

IP:port/context//security/html/blah.jsp

我在下面的链接上看到了类似的问题(不幸的是,没有解决方案)

http://forum.springsource.org/showthread.php?115666-Extra-leading-slash-added-by-RequestDispatcher-include()&p=382817#post382817

最佳答案

您可以将前导/替换为 getServletContext().getContextPath() 以使其在任何环境中都能工作。请检查并告诉我这是否解决了您的问题。

关于java - ServletContext#getRequestDispatcher() 添加了额外的斜杠,导致云服务器上出现 "Requested URI does not match Resource path pattern"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16976380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com