JSP 或 JavaScript 等价于 PHP 的 $_SERVER["HTTP_HOST"]?
Posted
技术标签:
【中文标题】JSP 或 JavaScript 等价于 PHP 的 $_SERVER["HTTP_HOST"]?【英文标题】:JSP or JavaScript equivalent to PHP's $_SERVER["HTTP_HOST"]? 【发布时间】:2010-10-21 05:36:03 【问题描述】:我已经在我的 javascript 中为 window.location 硬编码了一个绝对 URL。
我不想在每次测试我的应用程序时都更改此设置。在 php 中,我会通过测试 $_SERVER["HTTP_HOST"] 变量来找出我在哪个服务器上,并相应地进行调整来处理这个问题。但是,我对 Java 不太熟悉,想知道它是否有类似的方法?或者如果 JavaScript 也有类似的方法?
代码如下:
var url = "http://172.17.1.107/store/results/index.jsp";
window.location = url;
我想做的是:
var server = [something that returns just 172.17.1.107 (with or without the http:// is fine)]
var url = "http://" + server + "/store/results/index.jsp";
window.location = url;
在 PHP 中我会这样做:
var server = <?= $_SERVER["HTTP_HOST"] ?>
var url = "http://" + server + "/store/results/index.php";
window.location = url;
有什么想法吗?我想我是在假设您必须使用绝对 URL 来更改 JavaScript 中当前窗口的位置的情况下进行操作的。如果有另一种方法可以在没有绝对 URL 的情况下更改 JavaScript 中的窗口位置,请随时提供。
提前谢谢...
【问题讨论】:
【参考方案1】:你真的应该搜索这个,但在 JSP 中它是:
request.getRemoteHost()
【讨论】:
【参考方案2】:Javascript:
var server = window.location.hostname;
【讨论】:
【参考方案3】:位置对象has several properties,您想要的是hostname。
或者,您可以选择只使用相对于根的 URL 并设置 pathname 属性,而完全不干扰主机业务!
location.pathname = "/store/results/index.jsp";
【讨论】:
【参考方案4】:你需要的是:
request.getServerName()
一个例子:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
【讨论】:
以上是关于JSP 或 JavaScript 等价于 PHP 的 $_SERVER["HTTP_HOST"]?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 等价于 PHP 的 preg_replace
PHP: intval() 等价于数字 >= 2147483647
Delphi/Cpp 等价于 PHP 中的 RawURLEncode