Je veux créer un URL codé pour mon site. Par exemple, pour cette URL: " http://google.com/index.html "
Je veux donner cette URL au client en codant l'URL.
Puisque vous utilisez JSP, je voudrais m'en tenir à JSTL et ne pas utiliser de scriptlets . Vous pouvez utiliser la balise JSTL <c:url />
EN COMBINAISON AVEC <c:param />
:
<c:url value="/yourClient" var="url">
<c:param name="yourParamName" value="http://google.com/index.html" />
</c:url>
<a href="${url}">Link to your client</a>
Cela se traduira par:
<a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your client</a>
Utiliser UrlEncoder.encode () est la réponse. Mais le fait est que cette méthode ne code pas en pourcentage. Utilisation:
Java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20")
Il manque du code JSP à la réponse acceptée pour être valide, elle devrait être:
<c:url value="/yourClient" var="url">
<c:param name="yourParamName" value="http://google.com/index.html" />
</c:url>
<a href="<c:out value='${url}'/>">Link to your client</a>
Comme un commentaire l’a souligné, une autre option consiste à utiliser la méthode JavaScripts encodeURIComponent .