Ajax操作
创建XMLHttpRequest对象
var xt = null; //第一步得到ajax引擎对象 if(window.XMLHttpRequest){//根据浏览器的版本来创建ajax对象 xt = new XMLHttpRequest();//新版本的创建方式 }else{ xt = new ActiveXObject("Microsoft.XMLHTTP"); //老版本的创建方式 }
将状态触发器绑定到一个函数
//第二步 绑定监听 xt.onreadystatechange = call;//这里给力一个回调函数
使用open方法建立与服务器的连接
//第三步 绑定地址 xt.open("GET","/AjaxTest/AjaxServlet?name=Colin",true); //第一个参数指的是请求方式 第二个参数指得是路径 第三个参数指的是不是异步true false同步 xt.open("POST","/AjaxTest/AjaxServlet",true); post请求方式 xt.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 还需要多添加一个请求头 含义是表示客户端提交给服务器文本内容的编码方式 是URL编码
向服务器端发送数据
get请求方式
xt.send();
post请求方式
xt.send("username="+name);
在回调函数中对返回数据进行处理
//创建一个回调函数 没有判断状态前 function call(){ var text = xt.responseText; alert(text); } 状态判断依据 // HTTP状态编码 【200_服务器响应正常;400_错误请求【例如:语法请求】;403_没有访问权限;404_访问资源不存在;500_服务器内部错误】 //5 XMLHttpRequest对象的属性readystate响应状态码有5中 【0_XMLHttpRequest没有完成初始化;1_XMLHttpRequest对象开始发送请求; 2_XMLHttpRequest对象请求发送完成;3_XMLHttpRequest对象开始读取响应;4_XMLHttpRequest对象读取响应结束】 判断状态后 function call(){ if(xt.readyState ==4 && xt.status == 200){ var text = xt.responseText; alert(text); } }
代码示例
<input type="button" value="get请求" onclick="test()"></button> <script> var xt = null; var a = 0; function test() { if (window.XMLHttpRequest){ xt = new XMLHttpRequest(); } else { xt = new ActiveXObject("Microsoft.XMHTTP"); } ////5 XMLHttpRequest对象的属性readystate响应状态码有5中 // 【0_XMLHttpRequest没有完成初始化; // 1_XMLHttpRequest对象开始发送请求; // 2_XMLHttpRequest对象请求发送完成; // 3_XMLHttpRequest对象开始读取响应; // 4_XMLHttpRequest对象读取响应结束】 // 状态的改变触发onreadystatechange方法 xt.onreadystatechange = call; xt.open("GET","/upload?name=zym",true) xt.send() } function call() { if(xt.readyState==4&xt.status==200){ //加上这个判断条件一定可以取到值 var responseText = xt.responseText; // console.log(responseText); alert( +responseText) } } </script>
json
导入jar包
commons-beanutils.jar提供对java反射的包
commons-collections.jar集合类扩展包
commons-lang.jar增强工具包
commons-logging.jar提供了对日志实现的包装
ezmorph-1.0.4.jar
json-lib-2.2.2-jdk15.jar
把pserson对象转成json串
public static String objectToJson(Person p){ String str = null; JSONObject jo = JSONObject.fromObject(p); str = jo.toString();//转成字符串 return str; }
将json串转换成对象
public static Person jsonToPerson(String str){ //先把字符串转换成json串 JSONObject object = JSONObject.fromObject(str); //在将json串转成person对象 toBean(); Person p = (Person) JSONObject.toBean(object,Person.class); return p; }
将集合转换成json数组
public static String listToJson(List<Person> li){ String str = null; JSONArray ja = JSONArray.fromObject(li); str = ja.toString(); return str; }
将json数组转换成集合
public static List<Person> jsonToList(String str){ List<Person> list = new ArrayList<Person>();//得到一个新的集合对象 JSONArray ja = JSONArray.fromObject(str);//现将字符串转换成jsonarray JSONObject jo = null; for (int i = 0; i < ja.size(); i++) {//遍历JSONArray jo = ja.getJSONObject(i);//在JSONArray中得到每一个JSONObject list.add((Person) JSONObject.toBean(jo,Person.class));//在将每一个JSONObject扎UN转换成对象添加到集合中 } return list; }
将json数组转换成数组
public static Person[] jsonToArray(String str){ JSONArray ja = JSONArray.fromObject(str); Person[] p = (Person[]) JSONArray.toArray(ja, Person.class); return p; }
将map集合转换成json串
public static String mapToJson(Map<Integer,Person> m){ return JSONArray.fromObject(m).toString(); }