Как 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")