Comment obtenir le nom d'hôte pour un serveur avec des URL de ce type http://www.europewebsite.co.uk?
Le projet, je travaille sur plusieurs instances(j'.e site web différent) en cours d'exécution dans une seule base de code. En fonction de l'URL, nous montrons le site web correspondant.
Par exemple, si http://www.uswebsite.com/
le nous de NOUS montrer site web. et sihttp://www.cawebsite.com/
montrera le site web Canadien. Le code est écrit pour détecter c'est
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
String server` = httpRequest.getServerName();
Si la demande est à partir de la http://www.uswebsite.com/
alors, selon le code ci-dessus String server = uswebsite
donc, nous avons un autre code pour afficher le site correspondant
nous avons l'intention d'inclure l'instance Européenne dans la même base de code et je vois que l'URL de l'europe site va être comme ça http://www.europewebsite.co.uk/. Avec getServer() comme ci-dessus, il sera de récupérer String server=europewebsite
. En ayant la .co.royaume-uni à la fin sera le code ci-dessus toujours obtenir String server=europewebsite
ou String server=europewebsite.co
Veuillez informer que je ne peux pas le tester dans mon local.
Vous devez vous connecter pour publier un commentaire.
La formulation de votre question est plutôt déroutant, donc je suis en supposant que vous voulez tout simplement pour extraire le nom d'hôte à partir d'un hiérarchique chaîne d'URL.
Le moyen le plus sûr de faire est de construire une instance de
java.net.URL
oujava.net.URI
de la chaîne d'url, et utiliser le getter pour extraire le nom d'hôte.D'autre part, si vous êtes en essayant de détecter le nom d'hôte virtuel pour la requête en cours dans une servlet, alors votre
httpRequest.getServerName()
vous donne que le nom d'hôte comme il apparaît dans la première ligne de la requête HTTP (à moins que quelque chose a été ré-écrite ...).D'autre part, si vous souhaitez simplement pour extraire
"europewebsite"
à partir d'un nom DNS comme"www.europewebsite.co.uk"
, il n'y a pas de solution générale. Je vous recommande de conversion les DNS de tous les minuscules et en faisant une recherche dans une table que vous avez pré-initialisé avec toutes les variantes que vous êtes prêt à le reconnaître.Normalement httpRequest.getServerName() retourne le nom d'hôte, dans votre cas, c'est le nom complet c'est à dire. "europewebsite.co.royaume-uni".
HttpRequestBase