我想为我的网站创建一个编码URL。例如,对于这个 URL:“ http://google.com/index.html ”
我想通过 URL 编码将此 URL 提供给客户端。
我想为我的网站创建一个编码URL。例如,对于这个 URL:“ http://google.com/index.html ”
我想通过 URL 编码将此 URL 提供给客户端。
由于您使用的是 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>
使用 UrlEncoder.encode() 就是答案。但关键是这种方法不进行百分比编码。采用:
java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20")
接受的答案缺少一些有效的 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方法。
在您的 JSP 代码中尝试:
Base64.encodeBase64( "http://google.com/index.html")