Java 如何从getServletContext()返回域名。getContextPath()
我在一些域名ABC.com上有我的生产申请。在我的代码中,我根据一些操作将用户重定向到其他页面Java 如何从getServletContext()返回域名。getContextPath(),java,jsp,servlets,Java,Jsp,Servlets,我在一些域名ABC.com上有我的生产申请。在我的代码中,我根据一些操作将用户重定向到其他页面 response.sendRedirect(request.getServletContext().getContextPath() + "/time"); 但是通过上面的操作,它会被重定向到localhost:8080//time 但我希望它能被重定向到ABC.com/time 我该怎么做?我想到的一个简单的解决方案是,我应该为生产设置一些环境变量,而不是使用 request.getServlet
response.sendRedirect(request.getServletContext().getContextPath() + "/time");
但是通过上面的操作,它会被重定向到localhost:8080//time
但我希望它能被重定向到ABC.com/time
我该怎么做?我想到的一个简单的解决方案是,我应该为生产设置一些环境变量,而不是使用
request.getServletContext().getContextPath()
,我将使用环境变量值,即ABC.com如果您确实需要访问服务器所在的域,那么环境变量方式是始终有效的唯一方式(例如,即使您的服务器前面有一个代理…在我看来,这应该适用于您想要的域,前提是应用程序正在上述域中运行。现在,您可能正在本地主机上使用一个开发环境,这意味着servlet正在
localhost:8080
上运行,并将其作为路径传回。当您部署应用程序时,它应该可以工作
如果即使在开发环境中运行,也需要重定向到生产版本,那么应该在各种配置变量中对URL进行硬核处理。我更喜欢使用.conf
文件并在运行时读取这些文件,因为它可以让您轻松地动态更改它们的内容
一个可能引起问题的小问题是双斜杠。路径或URL将以斜杠结尾,因此不必附加第二个路径或URL。只要做+“time”
就足够了