转义并在url中
我使用的是jsps,在我的url中,我有一个变量的值,比如说“L&T”。 现在,当我尝试使用request.getParameter
检索它的值时,我只得到“L”。 它将“&”识别为分隔符,因此不会将其视为整个字符串。
我该如何解决这个问题?
java.net.URLEncoder.encode("L & T", "utf8")
这会输出URL编码,这可以作为GET参数:
L+%26+T
URL中的文字&符号应编码为: %26
// Your URL http://www.example.com?a=l&t // Encoded http://www.example.com?a=l%26t
您需要“URL编码”参数以避免此问题。 URL查询字符串的格式为: ...?
所有
s和
s需要进行URL编码,基本上意味着将可能被错误解释的所有字符(例如&)转换为%-escaped值。 有关更多信息,请参阅此页面: http : //www.w3schools.com/TAGS/ref_urlencode.asp
如果您使用Java 生成问题URL,则使用以下方法: String str = URLEncoder.encode(input, "UTF-8");
在其他位置生成URL(某些模板或JS或原始标记),您需要在源处修复问题。
您可以使用Spring Web上的 UriUtils#encode(String source, String encoding)
。 此实用程序类还提供仅对URL的某些部分进行编码的方法,如UriUtils#encodePath
。