Как URL кодировать URL в JSP/JSTL?
Я хочу создать закодированный URL для моего сайта. Скажем, например, для этого URL: " http://google.com/index.html "
Я хочу передать этот URL-адрес клиенту путем его кодирования.
Ответы
Ответ 1
Поскольку вы используете JSP, я бы придерживался JSTL и не использовал скриптлеты. Вы можете использовать тег JSTL <c:url/>
в сочетании с <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>
Это приведет к:
<a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your client</a>
Ответ 2
Использование UrlEncoder.encode() - ответ. Но дело в том, что этот метод не кодирует процент. Использование:
java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20")
Ответ 3
В принятом ответе отсутствует код JSP, который должен быть действительным, он должен быть:
<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>
Как отмечается в комментарии, другой вариант - использовать метод JavaScripts encodeURIComponent.
Ответ 4
Попробуйте использовать код JSP:
Base64.encodeBase64( "http://google.com/index.html")