20

我想为我的网站创建一个编码URL。例如,对于这个 URL:“ http://google.com/index.html

我想通过 URL 编码将此 URL 提供给客户端。

4

4 回答 4

37

由于您使用的是 JSP,我会坚持使用JSTL不是使用 scriptlets<c:url />您可以结合<c:param />使用 JSTL 标记:

<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>
于 2013-04-10T12:53:30.203 回答
5

使用 UrlEncoder.encode() 就是答案。但关键是这种方法不进行百分比编码。采用:

java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20")
于 2016-02-06T13:09:46.103 回答
1

接受的答案缺少一些有效的 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>

正如评论指出的那样,另一种选择是使用 JavaScript 的encodeURIComponent方法。

于 2019-02-12T19:04:06.313 回答
-9

在您的 JSP 代码中尝试:

Base64.encodeBase64( "http://google.com/index.html")
于 2013-04-10T10:20:21.640 回答