逃避&在URL中

时间:2010-02-04 07:21:49

标签: java jsp url uri

我正在使用jsps,在我的网址中,我有一个变量值,例如“L& T”。现在,当我尝试使用request.getParameter检索它的值时,我只得到“L”。它承认“&”作为分隔符,因此不会被视为整个字符串。

如何解决这个问题?

4 个答案:

答案 0 :(得分:16)

java.net.URLEncoder.encode("L & T", "utf8")

这将输出URL编码,这可以作为GET参数:

L+%26+T

答案 1 :(得分:1)

网址中的文字符号应编码为:%26

// Your URL
http://www.example.com?a=l&t

// Encoded
http://www.example.com?a=l%26t

答案 2 :(得分:1)

您需要“URL编码”参数以避免此问题。 URL查询字符串的格式为: ...?<name>=<value>&<name>=<value>&<etc> 所有<name><value>都需要进行URL编码,这基本上意味着将所有可能被错误解释的字符(如&amp;)转换为%-escaped值。有关更多信息,请参阅此页面: http://www.w3schools.com/TAGS/ref_urlencode.asp

如果您使用Java 生成问题URL,则使用以下方法: String str = URLEncoder.encode(input, "UTF-8");

在其他位置生成URL(某些模板或JS或原始标记),您需要在源处修复问题。

答案 3 :(得分:0)

您可以使用 Spring Web 中的UriUtils#encode(String source, String encoding)。此实用程序类还提供仅对URL的某些部分进行编码的方法,如UriUtils#encodePath

相关问题