Zugriff auf die vollständige url, einschließlich hostname mit jstl
<c:url var="myUrl" value="/MyPath/${MyID}"/>
die ich dann später benutzen (um Benutzern zu ermöglichen, kopieren von links) :
<input size="35" disabled value="${myUrl}" />
und es zeigt,
/my-app-name/MyPath/23
aber ich will, dass es
http://myHost/my-app-name/MyPath/23
Kann ich voranstellen der Zeichenfolge sicher, wollte aber ein Weg, um aktiv die richtige hostname ... ?
- Nebenbei bemerkt: denken Sie Daran, dass aktiv immer der hostname geben Sie den Hostnamen, die verwendet wurde, um Ihren server erreichen. Wenn es eine app hinter einem reverseProxy (beispielsweise ein Apache-Umleitung Anfrage an den app-server), werden Sie nicht haben, die Hostnamen der Benutzer sieht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie bereiten Sie sich basierend auf der
HttpServletRequest#getRequestURL()
und ein wenig Hilfe von JSTL-Funktionen:fn:substring(req.requestURI, 0, fn:length(req.requestURI)), etc.
<c:set var="baseURL" value="${fn:replace(req.requestURL, req.requestURI, req.contextPath)}" />
HttpServletRequest-Objekt hat alle details:
getProtocol
getServerName
getContextPath
also ich denke, dass Sie verwenden können:
bauen, was Sie wollen.
getRequestURL()
. Auch diegetServerName()
ist manipulierbar durch den Kunden auf derHost
- request-header, wäre ich nicht auf diese angewiesen sind.