Day5_15Ajax&Json
#AJAX: 1.概念:asynchronous JavaScript and xml 异步js和xml 1.异步和同步:客户端和服务器相互通信的基础上 *同步:客户端必须等待服务器端的响应。在等待时不能做其他操作。 *异步:客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他操作。 *Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 *通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 *传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。 2.实现方式: 1.原生的js实现(了解): function fun() { //发送异步请求. var xmlhttp;//1.创建核心对象 if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } //2.建立连接 参数:1.请求方式. 2。请求的url 3.同步或异步true(异步) false(同步) xmlhttp.open("GET","AjaxServletDemo01?username=law",true); //3.发送请求: xmlhttp.send(); //4.接收处理服务器响应 //获取方式:xmlhttp.responseText //什么时候获取?当服务器响应成功后再获取 xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var responseText = xmlhttp.responseText; alert(responseText); } } } 2.jQuery实现: 1.$.ajax(): *语法:$.ajax({键值对}); function fun() { //使用jQuery方式发送 $.ajax({ url:"AjaxServletDemo01", type:"POST", //data:"username=jack&age=23", data:{"username":"jack","age":23}, success:function (data) { alert(data); }, error:function () { //如果请求响应出现错误,会执行的回掉函数 alert("出错了") }, dataType:"text"//设置接受到的响应数据的格式 }); } 2.$.get():发送get请求 *语法: $.get(url,[data],[callback],[type]) 参数: *url: *data *callback *type 3.$.post():发送post请求 function fun() { $.get(post)("AjaxServletDemo01",{username:"rose"}, function (data) { alert(data); },"text"); } #Json 1.概念: JavaScript Object Notation JavaScript对象表示法 Person p = new Person(); p.setXXX; var p = {"name":"张三","age":26,"gender":male}; *存储数据和交换数据 *传输数据 2.语法: 1.基本规则: 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 2.获取数据: 1.json对象.键名 2.json对象["键名"] 3.数组对象[index] <script> var person = {"name":"张三",age:23,gender:true}; var ps = [ {"name":"张三",age:23,gender:true}, {"name":"李四",age:24,gender:true}, {"name":"王五",age:25,gender:false}]; //获取person对象中所有的键和值 /* for(var key in person){ alert(key + ":" + person[key]); } */ for (var i = 0; i < ps.length; i++){ var p = ps[i]; for(var key in p){ alert(key + ":"+p[key]); } } </script> 3.json数据和java对象的相互转换 *JSON解析器: *常见解析器:JsonLib,Gson,fastJson,jackson 1.json转java readValue(json,classname) 2.java转json 1.使用步骤: 导入jackson的jar包 创建jackson核心对象 ObjectMapper 调用核心对象的相关方法转换 3.注释: 1.@jsonIgnore:排除属性 2.@jsonFormat:属性值格式化