原生JavaScript的Ajax

原生JS的Ajax

[本程序可作为学习之用.使用:JSP进行调试.]

昨天看了看原生JS的Ajax,觉得还行,没有想象中难度那么大。其中最大的问题,依然是兼容性。比如在原生JS中,创建各种对象就需要考虑到N多浏览器的实现。而此时,Ajax同样如此,下面的代码貌似在Chrome里面无法运行,原因未知,而且对于中文的处理也并非完美.

所以,大家尽量使用各种JavaScript第三方库来处理Ajax吧,比如使用jQuery.

ajax原理图
image-1918

处理中文

1.发送路径的参数中包括中文,在服务器端接收参数值时产生乱码
  将数据提交到服务器有两种方法:一种是使用GET方法;一种是使用POST方法.使用不同的方法提交数据,在服务器端接收参数时解决中文乱码的方法是不同的,具体如下:
  1.1 当接收使用GET方法提交的数据时,要将编码转换为GBK或GB2312,例如:
  String selProvince = request.getParameter(“parProvince”);
  selProvince = new String (selProvince.getBytes(“ISO-8859-1”),”GBK”);

1.2由于应用POST方法提交数据时,默认的字符编码是UTF8,所以当接收使用POST方法提交的数据时,要将编码转换为UTF-8.例如,代码如下:
  String username= request.getParameter(“user”);
  username = new String(username.getBytes(“ISO-8859-1”),”UTF-8”);

2.返回到responseText或responseXML的值中包含中文时产生乱码
  由于Ajax在接受responseText或responseXML的值时是按照UTF-8的编码格式进行解码的,所以如果服务器端传递的数据不是UTF-8格式,在接收responseText或responseXML的值时就可能产生乱码.解决的方法是保证从服务器端传递的数据采用UTF-8的编码格式.

源代码

Fedora18安装tomcat

HTML部分代码:

JSP代码[全部,可以不用添加别的代码了.]:

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据