1.ajax优点:
a.页面无刷新
b.用户体验度较好,不会打断用户操作
c.按需求获取数据,不需要返回一个完整的页面
d.是标准的技术,不需要安装任何的插件
应用场景:注册、表格数据的增删改
2.JSON(javascript object motation js对象声明)
是一种轻量级的数据交换标准,一般用于浏览器与服务器的数据交换
数据交换:
将数据转换成中间的,与平台无关的格式数据
轻量级:解析速度比xml快,相对于xml而言,编写方便别情解析速度较快
JSON语法:
{key:value,key:value...}
1)使用json表示单个js对象
{"name":"zs","age":10}
属性名需要加"",属性值如果是string类型需要加"",数值类型则不需要加""
js类型:string,number,boolean,object,null,undefind (只有string需要加"")
2)使用json表示js数组对象
[{key:value},{key:value},{key:value}...]
3.java对象转成json对象
a.单个对象
JSONObject.formObject(obj).toString();
b.多个对象(集合,数组)
JSONArray.fromObject(obj).toString();
注:如果是Map,建议调用JSONObject转换成数据格式
package test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.junit.Test; import entity.User; public class UestJSON { @Test public void test1(){ User u=new User("账单",10); String data= JSONObject.fromObject(u).toString(); System.out.println(data); } @Test public void test2(){ List<User> list=new ArrayList<User>(); User u1=new User("张龙",10); User u2=new User("张虎",23); list.add(u1); list.add(u2); String data=JSONArray.fromObject(list).toString(); System.out.println(data); } @Test public void test3(){ User u1=new User("张龙",10); User u2=new User("张虎",23); User[] us={u1,u2}; String data=JSONArray.fromObject(us).toString(); System.out.println(data); } @Test public void test4(){ Map<String,Object> map=new HashMap<String,Object>(); User u1=new User("张龙",10); User u2=new User("张虎",23); map.put("u1",u1); map.put("u2",u2); String data=JSONObject.fromObject(map).toString(); System.out.println(data); } }
4.json字符串转成js对象
evalJSON()-->proptotype.js
5.jQuery对ajax的支持
{key:value...}
$.ajax({options});
url:请求地址
type:请求方式get/post
data:参数{"value":"js"}或者"value=js",
dataType:服务器返回的数据类型 json,xml,js,html,text等等
success:成功的回调函数
function(data,txt){
//data:服务器返回的数据
//txt:状态描述信息
},
error:失败的回调函数
function(xhr,txt){
//xhr:ajax对象
//txt:状态描述信息
},
简写:$.get(url,[data],[callback],[type]);
$.post(url,[data],[callback],[type]);
url:请求地址
data:请求参数
callback:成功的回调函数
type:服务器返回的数据类型
6.热卖商品动态展示(每隔5秒钟,向后台发一次请求)
step1.设计表
create table sale(id int primary key auto_increment,name varchar(30),qty int);
insert into sale values(null,'小米盒子',80);
insert into sale values(null,'小米手机',90);
insert into sale values(null,'小米路由',70);
insert into sale values(null,'小米台灯',85);
insert into sale values(null,'小米音响',80);
step2.定义实体类Sale
step3.定义DAO接口
List<Sale> findTop() throws Exception;
step4.定义DAO实现类
select*from sale order by qty desc limit 3;
step5.定义ActionServlet
step6.定义sale.html 写脚本,ajax向后台发请求
function f1(){ 使用ajax向服务器发请求(sale.do)};
function f2(){ setInterval(f1,5000)};
<body onload="f2();" >