如何在JSP / JSTL中对URL进行URL编码?

时间:2013-04-10 10:17:02

标签: java html jsp

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

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

4 个答案:

答案 0 :(得分:33)

由于您使用的是JSP,我会坚持使用JSTLnot use scriptlets。您可以使用JSTL标记<c:url /> in combination with <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>

答案 1 :(得分:4)

使用UrlEncoder.encode()就是答案。但重点是这种方法没有百分比编码。使用:

java.net.UrlEncoder.encode(stringOfURL,"UTF-8").replace("+","%20")

答案 2 :(得分:0)

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

答案 3 :(得分:-8)

尝试使用JSP代码:

Base64.encodeBase64( "http://google.com/index.html")