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

JavaScript 用于PHP的print_r的Javascript等价物

等价于 JavaScript 中的 continue 语句

JavaScript 等价于 ?? C#中的运算符[重复]