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

2022-09-02 03:04:09

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

我想通过 URL 编码将此 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")