views:

1556

answers:

5

I've go an absolute URL in my JavaScript that I have hard coded for window.location.

I don't want to have to change this every time I am testing my app. In PHP I would have handled this by testing the $_SERVER["HTTP_HOST"] variable to find out what server I am on, and adjust accordingly. However, I'm not as familiar with Java and am wondering if it has a similar method? Or if maybe even JavaScript had a similar method?

The code is as follows:

var url = "http://172.17.1.107/store/results/index.jsp";
window.location = url;

What I would like to do is:

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;

In PHP I would have just done this:

var server = <?= $_SERVER["HTTP_HOST"] ?>
var url = "http://" + server + "/store/results/index.php";
window.location = url;

Any ideas? I suppose I'm operating under the assumption that you have to do an absolute URL to change the location of the current window in JavaScript. If there is another way to change the window location in JavaScript without an absolute URL, please feel free to offer that as well.

Thanks in advance...

A: 

If you're looking for the ip address try: request.getRemoteAddr(). If you want the host name try: request.getRemoteHost()

For reference see: http://java.sun.com/products/servlet/2.2/javadoc/

jcw
A: 

You really should have search for this but in JSP it's :

request.getRemoteHost()
Thedric Walker
+2  A: 

Javascript:

var server = window.location.hostname;
Jose Basilio
+2  A: 

The location object has several properties, and the one you'd want is hostname.

Or, you can optionally just use a root-relative URL and just set the pathname property and not mess with the host business at all!

location.pathname = "/store/results/index.jsp";
Peter Bailey
+1  A: 

What you need is:

request.getServerName()

An example:

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
karim79