Java 如何在JSP/JSTL中对URL进行URL编码?
我想为我的站点创建一个编码的。例如,对于此URL: 我想通过URL编码将此URL提供给客户端 尝试您的JSP代码:Java 如何在JSP/JSTL中对URL进行URL编码?,java,html,jsp,Java,Html,Jsp,我想为我的站点创建一个编码的。例如,对于此URL: 我想通过URL编码将此URL提供给客户端 尝试您的JSP代码: Base64.encodeBase64( "http://google.com/index.html") 因为您使用的是JSP,所以我坚持使用和。您可以使用JSTL标记: 这将导致: <a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your clien
Base64.encodeBase64( "http://google.com/index.html")
因为您使用的是JSP,所以我坚持使用和。您可以使用JSTL标记:
这将导致:
<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>
正如一条评论所指出的,另一种选择是使用JavaScripts方法。为什么要在JSP上这样做?您不能在servlet上使用并将数据传递给JSP吗?Base64编码!=URL编码如何传递空参数值?我尝试了
,但结果是DocType%3d=
。我只需要DocType=
。我的表达式失败,因为它包含一个引号。(波波塔克利亚前哨)。如何通过转义而不是替换来解决问题?单引号不需要URL编码。应该是java.net.urlcoder而不是java.net.urlcoder
<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>