2011-10-07 69 views
0

我试图重定向我的回复,但我被卡在链接路径。重定向的链接路径

以下命令将我带到tomcat的本地主机,并在那里搜索页面,但无法找到任何内容,如预期的那样。

response.sendRedirect("/myPage.html"); 

为了管理这个问题我已经把我的根文件夹的名称(一个来自webaps)的链接路径,但我不认为这是一个很好的主意。

response.sendRedirect("/mySite/myPage.html"); 

这是怎么发生的?除了getRequestURL()或类似的东西之外,还有其他解决这个问题的方法吗?

回答

2

相对重定向URL是相对于当前请求URL(您在浏览器地址栏中看到的)。领先的/将带您到域根。这种行为是完全可以预测和正常的。如果myPage.html是在同一文件夹作为当前请求的URL,那么你可以删除前导/

response.sendRedirect("myPage.html"); 

或者,如果这是从来没有可靠预测的,因为当前请求的URL可以在你的web应用来自任何地方,那么只需动态地包含上下文路径:

response.sendRedirect(request.getContextPath() + "/myPage.html"); 
+0

非常感谢!我猜想第二种方法,将其与上下文路径一起使用,这被认为是很好的做法,对吗? – TGM

+0

是的,这样您就不需要对上下文路径进行硬编码,也不必担心传入请求URL的路径与重定向URL相比的相对性。 – BalusC