JSP ou JavaScript équivalent à PHP de $ _SERVER [ « HTTP_HOST »]?
-
13-09-2019 - |
Question
J'ai aller une URL absolue dans mon JavaScript que j'ai codé en dur pour document.location.
Je ne veux pas avoir à changer cela chaque fois que je teste mon application. En PHP, je l'aurais traité en testant le $ _SERVER [ « HTTP_HOST »] variable pour savoir quel serveur je suis sur, et ajuster en conséquence. Cependant, je ne suis pas aussi familier avec Java et je me demande si elle a une méthode similaire? Ou si peut-être même JavaScript avait une méthode similaire?
Le code est le suivant:
var url = "http://172.17.1.107/store/results/index.jsp";
window.location = url;
Ce que je voudrais faire est:
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;
En PHP j'aurais juste fait cela:
var server = <?= $_SERVER["HTTP_HOST"] ?>
var url = "http://" + server + "/store/results/index.php";
window.location = url;
Toutes les idées? Je suppose que je suis d'exploitation en supposant que vous avez à faire une URL absolue de changer l'emplacement de la fenêtre actuelle en JavaScript. S'il y a une autre façon de changer l'emplacement de la fenêtre en JavaScript sans une URL absolue, s'il vous plaît ne hésitez pas à offrir aussi.
Merci d'avance ...
La solution
Qu'est-ce que vous avez besoin est:
request.getServerName()
Un exemple:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
Autres conseils
L'objet emplacement a plusieurs propriétés , et celui que vous voudriez est .
Ou, vous pouvez éventuellement utiliser simplement une URL relative à la racine et juste définir les propriété et non mess avec l'entreprise d'accueil du tout!
location.pathname = "/store/results/index.jsp";
Javascript:
var server = window.location.hostname;
Vous devriez vraiment avoir la recherche pour cela, mais dans JSP, il est:
request.getRemoteHost()