`

[code]小试ajax,jsp+servlet + ajax

    博客分类:
  • ajax
阅读更多
做左三个小例子:
1.用户名存在与否查询.
2.用户间发消息,提示有几条消息,有无新消息
3.省市联动,是读xml得到省市名称的。

遇到的问题:
1.
[2]中js不停发送ajax请求,用到
window.setInterval("getNum()",5000);
因为一直写成
window.setInterval("getNum",5000);
所以不能运行~~~~js就是有这样的难题,程序错了,不知用什么工具调试(是我不知,应该有工具调试的吧)

2.
[3]中用到dom4j,
[3]中因为要传递中文所以遇到乱码的问题~~~
(1)服务器回应ajax请求,输出是xml文件要设charset=utf-8
response.setContentType("text/xml;charset=utf-8");   
PrintWriter pw = response.getWriter();     
System.out.println(results.toString());   
pw.print(results.toString());   
pw.flush();   
pw.close();    

(2)用get方式提出请求时,要对参数进行编码~~~
一种方法是用encodeURI对参数进行两次编码
url="getCitys?province=" + province + "&id="+Math.random(); url=encodeURI(url);
url=encodeURI(url);
对应服务器端的解码
String province = request.getParameter("province");
province=URLDecoder.decode(province,"utf8");
另一方法是用escape编码,同样是两次编码
province = escape(escape(province));
url="getCitys?province=" + province + "&id="+Math.random();
对应服务器端的解码
String province = unescape(request.getParameter("province"));
unescape是自己写的一个解码函数

(3)用post方式提出请求
要设setRequestHeader~~~
xmlHttp.open("POST",url,true);
var str = "province=" + province + "&id="+Math.random();
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xmlHttp.send(str);

(4)请求时的  Math.random();
暂时不太明白~~~只知道的是可保证每个ajax请求都有唯一的标识
var str = "province=" + province + "&id="+Math.random();
xmlHttp.send(str);


ajax乱码解决汇总
http://blog.csdn.net/zhanngle/archive/2008/01/24/2063490.aspx
AJAX之乱码
http://shylockbaby.blog.163.com/blog/static/60533020088206352125/
分享到:
评论
1 楼 SamuelFeng 2010-07-09  
下载你的东西有密码,请问密码是几多哦?

相关推荐

Global site tag (gtag.js) - Google Analytics