AJAX技术
相关概念
简述:AJAX(Asynchronous JavaScript And XML):异步的JavaScript和XML。
作用:
- 与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据。
- 后台发送:浏览器的请求是后台js发送给服务器的,js会创建单独的线程发送异步请求,这个线程不会影响浏览器的线程运行。
- 局部刷新:浏览器接收到结果以后进行页面局部刷新
原生AJAX
let xmlhttp = new XMLHttpRequest()
xmlhttp.open("GET",“url");
xmlhttp.send();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200{
alert(xmlhttp.responseText);
}
};
AXIOS框架
相关概念
概述:Axios 是一个基于promise网络请求库,作用于node.js和浏览器中。在服务端它使用原生 node.js的http模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。
使用流程
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.27.2/axios.min.js"></script>
<script>
axios({
method: "GET",
url: "http://localhost:8080/ajax-demo/axiosServlet?username=zhangsan"
}).then(resp => {
alert(resp.data);
});
</script>
<script>
axios({
method: "POST",
url: "http://localhost:8080/ajax-demo/axiosServlet",
data: "username=zhangsan"
}).then(resp => {
alert(resp.data);
});
</script>
请求别名
方法名 | 作用 |
---|
get(url) | 发起GET方式请求 | post(url,请求参数) | 发起POST方式请求 |
axios.get("url?key1=value1&key2=value2...")
.then(resp => {
alert(resp.data);
});
axios.post("url", "key1=value1&key2=value2... ")
.then(resp => {
alert(resp.data);
});
请求配置
axios({
method: "POST",
url: "axiosServlet",
baseURL: 'https://localhost:8080/demo1/',
headers: {'X-Requested-With': 'XMLHttpRequest'},
params: {ID: 12345},
data: "username=zhangsan",
timeout: 1000,
responseType: 'json',
})
响应结构
response = {
data: {},
status: 200,
statusText: 'OK',
headers: {},
config: {},
request: {}
}
数据格式
注意:默认情况下,axios将 JavaScript 对象序列化为JSON 。 要以application/x-www-form-urlencoded格式发送数据,您可以使用以下选项之一:
const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);
axios({
method: "POST",
url: "http://localhost:8080/ajax-demo/axiosServlet",
data: "username=zhangsan&password=123"
})
JSON概述
概念:JavaScript Object Notation。JavaScript对象表示法,简单理解JSON是把JS对象变成字符串由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输
格式:
{
name: "LXL",
age: 21,
address: "广东广州"
}
'{
"name": "LXL",
"age": 21,
"address": "广东广州"
}'
JSON与JS对象
JSON.parse(obj_json);
JSON.stringify(obj);
$.parseJSON(obj_json);
JSON与Java对象
JSON转换工具概述:JSON的转换工具是通过Java封装好的一些jar工具包,直接将Java对象或集合转换成JSON格式的字符串,也可以将 JSON格式的字符串转成Java对象。
常见JSON工具:
工具名称 | 说明 |
---|
Jsonlib | Java类库,需导入较多jar包 | Gson | Google提供的简易JSON转换工具 | Fastjson | alibaba提供的高性能JSON转换工具 | Jackson | 免费开源的JSON转换工具,SpringMVC默认使用 |
Fastjson概述:阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库,是目前Java语言中最快的JSON库,可以实现Java对象和JSON字符串的相互转换。
使用流程:
-
Maven中导入坐标 <dependency>
<groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
-
Java对象转JSON String jsonStr = JSON.toJSONString(obj);
-
JSON字符串转Pojo对象 User user = JSON.parseObject(jsonStr, User.class);
-
JSON字符串转Map对象 Map<String,Object> map=JSON.parseObject(jsonStr,Map.class);
-
JSON字符串转List对象 List list=JSON.parseObject(jsonStr,List.class);
List<Integer> list=JSON.parseArray(jsonStr,Integer.class);
|