编码问题
1.发送get请求
IE浏览器会使用gbk进行编码,而其他浏览器会使用utf-8来编码,服务器端默认使用iso-8859-1来解码,所以会产生乱码。
解决方法:
step1.服务器端统一使用utf-8来解码。
URIEncoding=utf-8
step2.浏览器端使用encodeURI函数来编码。
注:encodeURI是JavaScript内置的函数。
2.发送post
浏览器会使用utf-8来编码。服务器端默认使用ISO-8859-1来解码,所以会产生乱码
解决方法:
request.setCharacterEncoding(“utf-8”);
JSON(javascript object notation)
1.JSON是什么
是一种轻量级的数据交换格式
注:
数据交换:将要转换的数据先转换为一种与平台无关的数据格式,然后交给接收方来处理。
轻量级:相对于xml,JSON文档更小,解析速度更快。
2.语法
表示一个对象
{属性名:属性值,属性名:属性值….}
注意:
a.属性名必须使用双引号括起来。
b.属性值的类型可以使string,number,true/false,null,object
c.属性值如果是string,必须使用双括号括起来。
表示一个由对象组成的数组
[{},{},{}….]
3.使用json
将java对象转变为json字符串
可以使用json官方的工具(json-lib).
JSONObject,JSONArray
ex:
package json;
import java.util.ArrayList;
import java.util.List;
import bean.stock;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class jsonTest {
/*
* 将java对象转换为json字符串
*/
public static void test1(){
stock s=new stock();
s.setCode("345435");
s.setName("中国嘉陵");
s.setPrice(10);
//使用json-lib提供的工具来转换
JSONObject jsonobj=JSONObject.fromObject(s);
String jsonstr=jsonobj.toString();
System.out.println(jsonstr);
}
/*
* 多个对象组成的数组或者是集合转换成json字符串
*/
public static void test2(){
List<stock> stocks=new ArrayList<stock>();
for(int i=0;i<3;i++){
stock s=new stock();
s.setCode("345435"+i);
s.setName("中国嘉陵"+i);
s.setPrice(10+i);
stocks.add(s);
}
//fromObject方法的参数可以使数组或者集合
JSONArray jsonArr=JSONArray.fromObject(stocks);
String jsonStr=jsonArr.toString();
System.out.println(jsonStr);
}
public static void main(String[] args) {
test2();
}
}
将JSON字符串转换成JavaScript对象
JavaScript内置对象JSON提供的parse()方法。
jQuery对ajax的支持
1.$.ajax()方法
用法:
$.ajax({});
说明:{}是一个用来描述请求选项参数的对象,常见的选项参数有如下几个:
url:请求地址
data:请求格式,有两种格式:
第一种格式:请求字符串,比如”adminCode=sally”
第二组格式:对象,比如{“adminCode”:”sally”}
type:请求类型(get/post)
dataType:服务器返回的数据类型:
text:文本数据
json:json字符串
html:html文档
xml:xml文档
script:javascript脚本
success:事件处理函数(当服务器处理正常,用来处理服务器返回的数据)。
error:事件处理函数(当服务器处理异常,用来处理服务器返回的数据)。
2.load()
作用:向服务器发送异步请求,然后将服务器返回的数据直接添加到符合要求的节点之上。
用法:
$obj.load(url,[data]);
注意:
url:请求地址。
data:请求参数,格式同上。