学习目标:
完成对AJAX和JSON两种技术的学习
学习内容:
1.AJAX
1.概念:
AJAX全称"异步的JavaScript和XML"
同步:即客户端浏览器向服务器端发送请求,客户端必须等待服务器端完成响应,在服务器处理请求时,客户端不能进行其它操作
异步:即客户端浏览器向服务器端发送请求,客户端无需等待服务器端完成响应,在服务器处理请求时,客户端可以进行其它操作。
2.作用:
AJAX可以使网页实现异步的更新。这意味着在不刷新整个网页页面的前提下,可以完成对网页局部的更新。
举个例子,当我们使用百度的搜索功能时,鼠标聚焦到搜索框,并输入一些文字,此时搜索框下面就会通过"联想"功能将相关搜索标题显示出来。此时整个网页页面并没有刷新,而是网页中的这个搜索框这一小部分进行了刷新,这种功能的实现就是使用了AJAX技术。
3.使用:
AJAX的实现是通过浏览器内置的Ajax引擎完成的。它有以下实现方式:
1.JS的原生方式
2.JQuery方式
通过JS的原生方式实现AJAX较为复杂,我们一般使用最常用的JQuery方式
JQuery实现AJAX方式
1.$.ajax()
2.$.get()
3.$.post()
$.ajax()方式的说明:
<!--
$.ajax({
url: 请求的资源路径
type: 请求方式
data: 请求参数(使用Json格式)
dataType: 响应的数据格式
success: 回调函数,响应成功自动执行该函数
error: 回调函数,响应失败自动执行该函数
})
-->
2.JSON
—1.概念:一种轻量级的数据交换格式
—2.作用:易于人们阅读和编写,也易于机器解析和生成,能够有效提高网络传输效率
—3.使用:
语法:
基本规则
- .一个JSON对象用一对花括号表示
2.每个键值对之间用逗号隔开(值的数据类型可以为数字型,布尔型,字符串型,JSON对象型,数组型,null)
3.数组用方括号表示
如何获取JSON对象的数据
1.JSON对象.键名
2.JSON对象[“键名”]—一般用于使用for…in…遍历JSON对象
3.JSON对象[索引]
遍历
对于JSON对象,一般使用for…in…遍历
演示:
<script>
var json1 = {"name":"Jack","age":21,"gender":true};
var json2 = {"Persons":[{"name":"Jack","age":21,"gender":true},{"name":"Tom","age":21,"gender":true}]};
//遍历json1
for(var key in json1){
//alert(json1.key); 此时json1.key等价于json1."key",因此无法正确获取键对应的值
alert(json1[key]); //正确
}
//遍历json2
for(var key in json2){
var array = json2[key];
for(var i = 0; i <array.length;i++){
alert(array[i].name);
}
}
</script>
Java对象和JSON对象之间的相互转换
在服务器端,我们最常用的操作是将Java对象转换为JSON对象,如何进行转换呢?答案是使用解析器,我们使用jackson解析器来将Java对象转换为JSON对象
使用步骤:
- .导入jackson的jar包
2.创建核心对象ObjectMapper
3.调用相关方法将Java对象转换为JSON对象
@Test
public void test4(){
ObjectMapper mapper = new ObjectMapper(); //创建核心对象ObjectMapper
User user = new User(); //创建一个Java对象,并设置它的属性值
user.setName("Jack");
user.setId(1);
user.setPassword("123");
try {
String Json = mapper.writeValueAsString(user); //调用writeValueAsString(),将Java对象转换为Json字符串
System.out.println(Json); //打印Json
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
输出结果:
3.案例
案例需求:完成用户名的自动校验,当用户名的文本输入框离焦时,自动检验用户输入的用户名是否在数据库中存在,如果存在,提示:名字太受欢迎了,换一个吧~;如果不存在,则提示可用
解题思路:给文本输入框绑定离焦事件,一旦触发,客户端浏览器发送AJAX异步请求给服务器端,服务器通过该用户名通过数据库将其封装为一个Java对象,最后将该Java对象转换为JSON对象,响应给浏览器端,如果JSON对象不为null,则说明已经存在该用户名,如果为null,说明数据库中不存在该用户
运行结果:
通过这个案例我们得出结论:AJAX异步请求可以实现网页的异步更新,即在不刷新整个页面的情况下,完成对网页局部的更新。
学习时间:
2021-1-14