01_Ajax概述
A.概述
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
B.作用
a.可以局部刷新页面
b.可以发起异步请求
C.和同步请求的区别
同步请求:当页面内容发生改变时,必须全部刷新,且刷新的时候不能发出其他请求
异步请求:可以局部的改变网页上的内容,当正在发生改变时,其他的模块的内容也可以发出请求.
02_XMLHttpRequest对象详细介绍
A. XMLHttpRequest概述
ajax异步请求对象
B.属性
onreadystatechange
用于指定XMLHttpRequest对象状态改变时的事件处理函数
readyState:XMLHttpRequest对象的处理状态 0 :XMLHttpRequest对象还没有完成初始化
1 :XMLHttpRequest对象开始发送请求
2 :XMLHttpRequest对象的请求发送完成
3 :XMLHttpRequest对象开始读取服务器的响应
4 :XMLHttpRequest对象读取服务器响应完成
responseText:
用于获取服务器的响应正文.
status
服务器返回的响应状态码,只有服务器的响应已经完成时,才会有该状态码
C.方法
open:打开链接.
open(请求方式,请求路径,flag);
flag为true则是异步请求,如果是false则是同步请求
send:发送数据send(数据);
请求方式为get请求时,不需要通过send方法来发送,直接将参数跟在请求路径后面
请求方式为post请求时,就需要使用send方法
setRequestHeader:设置请求头setRequestHeader(“头”,”值”);
03_Ajax入门案例之get方式
A.步骤
a.创建异步的XMLHttpRequest对象.
b.设置监听:监听对象的状态的变化,触发一个函数.
c.打开链接:
d.发送数据:
B.实现
function createXMLHttpRequest() {
var xmlHttp;
try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest();
} catch(e) {
try { // Internet Explorer
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
}
}
return xmlHttp;
}
function ajax_get() {
// * 1.创建异步的XMLHttpRequest对象. var xhr = createXMLHttpRequest();
// * 2.设置监听:监听对象的状态的变化,触发一个函数. xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var data = xhr.responseText;
// 获得div:
var div1 = document.getElementById("div1");
div1.innerHTML = data;
}
}
}
// * 3. 打 开 链 接 :
xhr.open("GET", "${pageContext.request.contextPath}/ajaxServletDemo1", true);
// * 4.发送数据:
xhr.send();
}
04_Ajax入门案例之post方式
A.步骤
a.创建异步的XMLHttpRequest对象.
b.设置监听:监听对象的状态的变化,触发一个函数.
c.打开链接:
d.设置请求头
e.发送数据:
B.实现
function ajax_post() {
// * 1.创建异步的XMLHttpRequest对象. var xhr = createXMLHttpRequest();
// * 2.设置监听:监听对象的状态的变化,触发一个函数. xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
// 获得响应的数据:
var data = xhr.responseText;
// 获得div1:
var div1 = document.getElementById("div1");
div1.innerHTML = data;
}
}
}
// * 3.打开链接:
xhr.open("POST", "${ pageContext.request.contextPath }/ajaxServletDemo1", true);
// 设 置 请 求 头 : xhr.setRequestHeader("Content‐Type","application/x‐www‐form‐urlencoded");
// * 4.发送数据:
//POST请求传递参数:需要将参数写到send方法中.
xhr.send("id=3&name=李四");
}
05_Json介绍
A.什么是Json?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习
惯。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。
B.Json语法
一个数据:{"键1":值1,"键2":值2}
一组数据:[{"键1":值1,"键2":值2},{"键1":值1,"键2":值2}]
a.数据在键值对里面
b.数据之间由逗号分隔
c.大括号保存对象
d.中括号保存数组
e.Json值
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null
C.Json数据
Java类
class Province {
int id;
Stirng name;
}
Json数据
单条数据,表示Java中的单一对象.
一个省份
{"id":1,"name":"湖北省"}
多条数据,表示Java中的集合或数组. 多个省份
[{"id":1,"name":"湖北省"},{"id":2,"name":"湖南省"},{"id":3,"name":"四川省"}]
06_Gson的使用
A.什么是Gson?
Gson是一个工具类:将对象,数组,List,Map集合转换成json字符串
B.使用Gson
a.导入jar包
gson.jar
b.gson使用
将对象转换成json字符串
将List集合转换成json字符串将数组转换成json字符串
将map集合转换成json字符串