Get domain name in der url mit JSTL?
Ich versuche, den domain-Namen aus der url mit JSTL. Die 2 Methoden die ich kenne zurück, die falsche Informationen. Ich brauche genau das, was in der URL.
Wenn ich das mache:
${pageContext.request.remoteHost}
Bekomme ich meine server-IP.
Wenn ich das mache:
${pageContext.request.serverName}
Normalerweise lasse ich den richtigen domain-Namen, sondern auf einem server haben wir auf amazon seine Rückkehr "server1" statt der richtigen domain-Namen, wahrscheinlich wegen der Art, wie es behandelt mehrere domains.
Jemand wissen, wie kann ich die aktuelle domain-Namen in der URL?
Kann ich Sie brauchen, um die URL und dann analysieren es. Wie soll ich das tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
HttpServletRequest.getRequestUrl()
zu:dies würde einen String zurückgeben wie Get domain name in der url mit JSTL?
Es sollte dann trivial sein zu analysieren, diese zu finden, die Zeichenfolge, die nach das Schema (http, https, etc) und vor die requestURI.
Sollten Sie mit Hilfe
ServletRequest#getLocalName()
statt. Es gibt den echten Hostnamen des Servers ein. DieServletRequest#getServerName()
in der Tat wird der Wert wie inHost
header.Das ist alles. Die Lösungsvorschläge in den anderen Antworten sind einfach ungeschickt und hacky.
Durch die Art und Weise, die
ServletRequest#getRemoteHost()
nicht zurück hostname des Servers, der client aber eine (oder die IP, wenn der hostname nicht sofort aufzulösen ist). Es ist offensichtlich die gleiche wie die des Servers, wenn Sie laufen sowohl die webserver und webbrowser bei physikalisch die gleiche Maschine. Wenn Sie interessiert sind, in der server-IP -, verwendenServletRequest#getLocalAddr()
. Die Begriffe "lokale" und "remote" interpretiert werden muss, die aus server-Sicht, nicht aus der des Kunden. Es ist nach alle dem server gibt es, wo alle, die Java-code ausgeführt wird.Können Sie analysieren domain-Namen von URL
ODER
${pageContext.Anfrage.contextPath}