由于tomcat7.0以上的版本导致的问题具体原因网上有很多解释,解决方法也多种多样,最多的就是说在前端编码,后台解码,我试了以后发现在本机使用的时候没问题上传到服务器就会出错,最后找出的解决方法就是在前端进行两次编码,至于为啥要这样我也不知道了~~~具体代码如下
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43<script type="text/javascript"> window.onload = function() { //得到文本框对象 var offer=document.getElementById("offer"); //获取div元素 var div = document.getElementById("context1"); offer.onkeyup = function(){//给文件框注册按键弹起事件 //获取文本框的值 var offer=this.value; //如果文本框不没有数据时,把div隐藏,且不向服务器发送请求 if(offer==""){ div.style.display="none"; return; } //获得xhr对象 var xhr = getXMLHttpRequest(); //处理结果 xhr.onreadystatechange = function(){ if(xhr.readyState==4){//请求一 切正常 if(xhr.status==200){//服务器响应一切正常 var str = xhr.responseText;//得到服务器返回的数据 var ss = str.split(","); // 把字符串 1001,1002,1003 截成数组 var childDivs = ""; //循环把数据放入小的div中 for(var i=0;i<ss.length;i++){ childDivs+="<div onclick='writeText(this)' onmouseover='changeBackground_over(this)' onmouseout='changeBackground_out(this)'>"+ss[i]+"</div>";//把数组中的每个元素放到div中 } div.innerHTML= childDivs;//把多个childDivs(div)放入列表div中 div.style.display="block";//把列表隐藏 } } }; xhr.open("get","${pageContext.request.contextPath}/servlet/machineAJAXServlet?method=firm&offer="+encodeURI(encodeURI(offer))+"&time="+new Date().getTime()); //两次编码 xhr.send(null); }; }; </script>
#servlet
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { request.setCharacterEncoding("UTF-8");//只能解决post方式的乱码 response.setContentType("text/html;charset=UTF-8"); String offer = request.getParameter("offer"); offer=URLDecoder.decode(offer, "UTF-8");//进行解码 List<Object> list = service.searchMachineByName(offer); System.out.println("offer="+offer); //把集合中的数据转换为字符串返回到网页 String str = ""; for (int i = 0; i < list.size(); i++) { if(i>0){ str+=","; } str+=list.get(i); } System.out.println(str); //把数据响应到客户端 response.getWriter().write(str); }
最后
以上就是外向烧鹅最近收集整理的关于ajax传参不能传中文的问题解决方法的全部内容,更多相关ajax传参不能传中文内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复