![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/dd4df443a26b687e553bf1c53f02572b.png)
文字:
1.AJAX:
1.概念:Asynchronous JavaScript And XML (异步的JavaScript 和 XML)
1.异步和同步:客户端和服务器端相互通信的基础上
客户端必须等待服务器端的响应,在等待的期间不能做其他操作
客户端不需要等待服务器的响应,在服务器处理请求的过程中,客户端可以进行其他操作
2.可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果。
2.实现方式:
1.原生js:(了解)
2.jquery:
1.$.ajax()
语法:$.ajax(url,[settings]) / $.ajax(键值对)
$.ajax({
url:"http://localhost:8080/day18/ajaxServlet",
type:"post",
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请求
语法:$.post(url, [data], [callback], [type])
2.JSON:
1.概念:JavaScript Object Notation (JavaScript对象表示法)
var p = {"name":"zhangsan","age":23,"gender":"male"};
2.语法:
1.基本规则:
数据在名称/值对中:json是由键值对构成的
键用引号引起来,也可以不使用引号
取值类型:
1.数字(整数或浮点数)
2.字符串(在双引号中)
3.逻辑值(true或false)
4.数组(在方括号中){"persons":[ {},{} ] }
5.对象(在花括号中){"address":{"province":"山西", …}}
6.null
数据由逗号分隔
花括号保存对象
方括号保存数组
2.获取数据:
1.json对象.键名
2.json对象["键名"]
3.数组对象[索引]
var ps = [
{"name":"张三",age:23,'gender':true},
{"name":"邵宇辉",age:23,'gender':true},
{"name":"航航爱次糖",age:23,'gender':true}
]
for (var i = 0; i < ps.length; i++) {
var p = ps[i];
for (var key in p) {
document.write(key+"-"+p[key]+"\n");
}
}
3.JSON对象和java对象的相互转换
JSON解析器:
常见的解析器:Jsonlib,Gson,fastjson,jackson
1.JSON转Java对象
1.使用步骤:
1.导入相关jar包
2.创建jackson核心对象 ObjectMapper
3.调用ObjectMapper的相关方法进行转换
1.readValue(json字符串数据,class)
2.Java对象转JSON
1.使用步骤:
1.导入相关jar包
2.创建jackson核心对象 ObjectMapper
3.调用ObjectMapper的相关方法进行转换
writeValue(参数1,obj)
参数1:
File:将obj对象转换为JSON字符串,并保存到指定文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
writeValueAsString(obj):将对象转为json字符串
2.注解:
1.@JsonIgore:排除属性
2.@JsonFormat:属性值格式化
3.复杂对象转换:
1.List:数组格式
2.Map:对象格式
3.案例:验证用户名是否存在
1.服务器响应的数据,在客户端使用时,要想当作json数据格式使用
1.$.get(type):将最后一个参数type指定为"json"
2.在服务器端设置MIME类型
response.setContentType("application/json;charset=ytf-8");