如何从getServletContext()返回域名.getContextPath()

时间:2017-12-31 10:13:29

标签: java jsp servlets

我在某些域名ABC.com上有我的应用程序。在我的代码中,我根据某些操作将用户重定向到其他页面

response.sendRedirect(request.getServletContext().getContextPath() + "/time");

但是通过上面它被重定向到localhost:8080 //时间 但不是这样,我希望它被重定向到ABC.com/time

我该怎么做?我想到一个简单的解决方案是我应该为生产设置一些环境变量而不是使用

  

request.getServletContext()。getContextPath()

,我将使用环境变量值,即ABC.com

2 个答案:

答案 0 :(得分:1)

如果您确实需要可以访问服务器的域,那么环境变量方式是唯一可行的方式(例如,即使服务器前面有代理......)

答案 1 :(得分:0)

在我看来,只要应用程序在所述域中运行,这应该适用于您想要的域。现在您可能正在使用localhost上的开发环境,这意味着servlet正在=IF( AND( A2>=Sheet2!A2, A2<=Sheet2!B2 ),Sheet2!C2, IF( AND( A2>=Sheet2!A3, A2<=Sheet2!B3 ),Sheet2!C3, IF( AND( A2>=Sheet2!A4, A2<=Sheet2!B4 ),Sheet2!C4, IF( AND( A2>=Sheet2!A5, A2<=Sheet2!B5 ),Sheet2!C5, IF( AND( A2>=Sheet2!A6, A2<=Sheet2!B6 ),Sheet2!C6 )))))上运行,并且还会将其作为路径传递回去。部署应用程序时,它应该可以正常工作。

如果您需要重定向到生产版本,即使您在开发环境中运行,也应该在各种配置变量中硬化URL。我更喜欢使用localhost:8080文件并在运行时读取它们,因为它允许您轻松地动态更改其内容。

可能导致问题的一个小问题是双斜线。路径或URL将以斜线结尾,因此您不必附加第二个路径或URL。只需做.conf即可。