转义并在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