AJAX
1. 概念
Asynchronous JavaScript And Xml 异步的 JavaScript 和 xml
-
异步和同步:客户端和服务器端相互通信的基础上
- 客户端必须等待服务器端的响应。在等待期间客户端不能做其他操作(同步)
- 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作(异步)
Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 Ajax )如果需要更新内容,必须重新加载整个页面。
提升用户的体验
2. JQuery实现方式:
- $.ajax()
- 语法:$.ajax({键值对});
// 使用$.ajax()发送异步请求
$.ajax({
url:"ajaxServlet1111", // 请求路径
type:"POST"; // 请求方式
// data:"username=jack&age=23", 请求参数
data:{"username":"jack","age":23},
success:function(data){
alter(data);
}, // 响应成功后的回调函数
error:function(){
alter("出错啦...");
}, // 表示如果请求响应出现错误,会执行的回调函数
dataType:"text" // 设置接收到的响应数据的格式
});
- $.get() : 发送 get 请求
- 语法:$.get(url, [data], [callback], [type])
- 参数:
- url :请求路径
- data :请求参数
- callback :回调函数
- type :响应结果的类型
- 参数:
- $.post() :发送 post 请求(同上)
JSON
1. 概念
JavaScript Object Notation JavaScript 对象表示法
Person p = new Person();
p.setName("张三");
p.setAge(23);
p.setGender("男");
var p = {"name":"张三","age":23,"gender":"男"};
- json 现在多用于存储和交换文本信息的语法
- 进行数据传输
- JSON 比 XML 更小、更快,更易解析
2. 语法
- 基本规则
- 数据在名称 / 值对中: json 数据是由键值对构成的
- 键用引号(单双都行)引起来,也可以不使用引号
- 值的取值类型:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在花括号中){“person” : [{},{}]}
- 对象(在花括号中){“address”:{“province”:“河南”,…}}
- null
- 数据由逗号分隔:多个键值对由逗号分隔
- 花括号保存对象:使用 {} 定义 json 格式
- 方括号保存数组:[ ]
- 获取数据:
- json对象.键名
- json对象[“键名”]
- 数组对象[索引]
- 遍历
3. JSON 数据和 Java 对象的相互转换
- JSON 解析器:
- 常见的解析器:Jsonlib , Gson , fastjson , jackson
- JSON 转为 Java 对象
- 导入 jackson 的相关 jar 包
- 创建 jackson 核心对象 ObiectMapper
- 调用 ObjectMapper 的相关方法进行转换
* readValue(json字符串数据,Class)
-
Java 对象转换 JSON
-
使用步骤:
-
导入 jackson 的相关 jar 包
-
创建 jackson 核心对象 ObiectMapper
-
调用 ObjectMapper 的相关方法进行转换
-
转换方法:
* writeValue(参数1,obj) :
参数1:
File :将 obj 对象转换为JSON 字符串,并保存到指定的文件中
Writer :将 obj 对象转换为JSON 字符串,并将 json 数据填充到字符输出流中
OutputStream :将 obj 对象转换为 JSON 字符串,并将 json 数据填充到字节输出流中
* writeValueAsString(obj) :将对象转为 json 字符串
2. 注解:
1. @JsonIgnore :排除属性。
2. @JsonFormat :把属性值格式化
* @JsonFormat (pattern = "yyyy-MM-dd")
3. 复杂 java 对象转换
1. List :数组
2. Map :对象格式一致