在我的项目中,从UI我使用HTTP post方法将字符串传递给服务器,如account<s
。使用HTTPServlet的request.getParameter()
方法在后端获取此值。 getParameter()返回一个编码的字符串。 account<s
值被提取为account& lt;s
现在在UI中,我需要显示account<s
。如果该值编码为account<s
,那么我可以在UI部分中使用html解码。但编码的字符串有一个额外的空间。我没有<
,而是& lt;
。
jQuery代码:
var params = {};
params.passVal = "account<s";
//ajax call
$.ajax({
type:"POST",
url:url,
data:params,
datatype:"json",
async:false
}).success(function(json){
//success notification
});
Java代码:
String receivedVal = request.getParameter("passVal"); //account& lt;s
我正在使用Apache Tomcat 7和jquery v2.1.3
对于所有编码字符,在第1个和第2个字符之间添加一个空格。它为什么会这样?我怎样才能用Java获取原始数据?
答案 0 :(得分:2)
出现此问题的原因是servlet过滤器类,其中定义了编码过程。它不是<
,而是编码为& lt
。非常感谢@ tak3shi指出根本原因。
答案 1 :(得分:1)
HTML实体(<
)不是URL编码;您需要将<
编码为%3c
。