Java xmlhttp.setRequestHeader不工作

Java xmlhttp.setRequestHeader不工作,java,ajax,servlets,character-encoding,Java,Ajax,Servlets,Character Encoding,这是我的密码 // assume var data has japanese characters xmlhttp.open("POST","adminUpdate?&value="+data,true); // tried GET as well xmlhttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); xmlhttp.send(); 如果我插入警报(数据),那么我可以很好地看到日文字符 但在服务器端(

这是我的密码

// assume var data has japanese characters
xmlhttp.open("POST","adminUpdate?&value="+data,true); // tried GET as well
xmlhttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
xmlhttp.send();
如果我插入警报(数据),那么我可以很好地看到日文字符

但在服务器端(servlet类),当我添加以下代码时:

String query = request.getParameter("value");
system.out.println(query)
现在我看到垃圾的价值

好的,我在服务器端添加了这一行:

System.out.println("content type : "+ request.getContentType());
我得到了这个:
text/plain;字符集=UTF-8


现在我的问题是,如果编码设置正确,那么为什么我看不到日文字符呢?一个选项是将查询参数作为请求正文的一部分发送,并将内容类型设置为
application/x-www-form-urlencoded

然后,在获取参数之前,设置


请注意,无论您在哪里打印
查询
值,都必须能够显示
UTF-8
编码字符。

机器???请解释你的问题。我可以从数据库中看到我的网页中的日文字符,如果我硬编码日文字符,那么我也可以看到以及如何“将查询参数作为请求正文的一部分发送”?@HarendraSingh
XmlHttpRequest
有许多
send
方法。我想这就是我要做的,使用xmlhttp.send()发送参数就是请求主体;链接的第一个命令是only@HarendraSingh您当前正在做的是将请求参数作为查询字符串的一部分发送。(有一个解决方案,但它更复杂。)相反,将请求参数作为表单参数发送。请参阅重载的方法。@HarendraSingh
request.setCharacterEncoding("UTF-8");
String query = request.getParameter("value");