【问题标题】:How to return domain name from getServletContext().getContextPath()如何从 getServletContext().getContextPath() 返回域名
【发布时间】:2017-12-31 10:13:28
【问题描述】:

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

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

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

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

request.getServletContext().getContextPath()

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

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在我看来,这应该适用于您想要的域,前提是应用程序是从所述域运行的。现在,您可能正在本地主机上使用开发环境,这意味着 servlet 在localhost:8080 上运行,并且还会将其作为路径传回。当您部署应用程序时,它应该可以工作。

      如果您需要重定向到生产版本,即使您是在开发环境中运行,您应该将 URL 硬核到某种配置变量中。我更喜欢使用 .conf 文件并在运行时读取这些文件,因为它可以让您轻松地即时更改它们的内容。

      可能导致问题的一个小问题是双斜线。路径或 URL 将以斜杠结尾,因此您不必附加第二个。只需执行+ "time" 就足够了。

      【讨论】:

        猜你喜欢
        • 2010-11-29
        • 2014-11-21
        • 2011-03-08
        • 1970-01-01
        • 2013-07-20
        • 1970-01-01
        • 1970-01-01
        • 2014-07-04
        • 1970-01-01
        相关资源
        最近更新 更多