- 标准请求响应时浏览器的动作(同步操作)
即:浏览器请求什么资源,跟随显示什么资源 - ajax是异步请求
局部刷新,通过异步请求,请求到服务器资源数据后,通过脚本修改页面中部分内容.
Ajax
1. ajax 由 javascript 推出的
由 jquery 对 js 中 ajax 代码进行的封装,达到使用方便的效果.
2. jquery 中 ajax 分类
- 第一层 $.ajax({ 属性名:值,属性名:值})
①是 jquery 中功能最全的.代码写起来相对最麻烦的.
②示例代码
url: 请求服务器地址
data:请求参数
dataType:服务器返回数据类型
error:请求出错执行的功能
success:请求成功执行的功能,function(data) data 服务器返回的数据
type:请求方式
$("a").click(function(){
$.ajax({
url:'demo',
data:{"name":"张三"},
dataType:'html',
error:function(){
alert("请求出错.")
},
success:function(data){
alert("请求成功"+data)
},
type:'POST'
});
return false;
})
-
第二层(简化 $.ajax)
$.get(url,data,success,dataType))
$.post(url,data,success,dataType) -
第三层(简化$.get())
$.getJSON(url,data,success)
相当于设置 $.get 中dataType=”json”
$.getScript(url,data,success)
相当于设置 $.get 中dataType=”script”
注:如果服务器返回数据是从表中取出.为了方便客户端操作返回的数据,服务器端返回的数据设置成 json -
客户端把 json 当作对象或数组操作
-
json:数据格式
①JsonObject:json 对象,理解成 java 中对象
{“key”:value,”key”:value}
②JsonArray:json 数组
[{“key”:value,”key”:value},{}]
示例:
System.out.println("执行控制器");
String name = req.getParameter("name");
Users users = new Users();
users.setId(1);
users.setPassword("123");
users.setUsername("张三");
Users users1 = new Users();
users1.setId(2);
users1.setPassword("22");
users1.setUsername("李四");
List<Users> list = new ArrayList<Users>();
list.add(users1);
list.add(users);
ObjectMapper mapper = new ObjectMapper();
String result = mapper.writeValueAsString(list);
resp.setContentType("application/json;charset=utf-8");
PrintWriter out = resp.getWriter();
out.println(result);
out.flush();
out.close();