ajax,json ╰+哭是因爲堅強的太久メ 2023-08-17 17:42 105阅读 0赞 # 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请求" οnclick="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(); } 转载于:https://www.cnblogs.com/taozizainali/p/11105506.html
还没有评论,来说两句吧...