该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
javaScript 1 XMLHttpRequest创建 2 使用该对象向服务器发送请求
(a form window.location.href)
a 获取客户端中需要发送给服务器的数据
document.getElementById("username").value;
b 定义一个url地址(servlet action)
var url = "servlet/CheckServlet" "check.do"
c 打开到url的连接
xmlHttp.open(1,2,3,4,5) 1 以何种方式打开连接(post/get)
2 指定url地址(b)
3 模式打开连接(true异步(默认)/false同步)
true 客户端不需要等待服务器响应
false 客户端需要等待服务器响应
4,5 指定打开连接时需要输入的username和password
(role管理时) xmlHttp.open("post/get",url);
d 设置请求的头信息,指定发送请求的编码格式
(普通url形式 字节码形式[上传])
form enctype application/x-www-form-urlencoded
multipart/form-data xmlHttp.setRequestHeader(key,value)
key == Content-Type (表示请求的编码方式)
value == application/x-www-form-urlencoded 将由xmlHttpRequest发送的请求编码成url形式发送给服务器 如果以get方式打开连接,可以省略这一步 e 单独定义一个js方法接受服务器的响应数据
xmlHttp.onreadystatechange = etoak;
发送异步请求,客户端不需要等待服务器响应;当服务器将数据返回给js之后,需要有一个方法进行接受;
function etoak(){
//对服务器的响应数据进行接受
}
f 发送请求 将请求数据发送给服务器
xmlHttp.send(null); 以post方式打开连接:
xmlHttp.send("username=tom");
以get方式打开连接:
var url = "check.do?username=tom"
xmlHttp.send(null)
function etoak(){
//对服务器的响应数据进行接受
3、使用XMLHttpRequest接受服务器的响应
服务器接受到ajax请求之后,在处理的过程中,javaScript会时刻读取服务器的响应数据(服务器处理完请求之前,javaScript读取到的响应数据是不完整的)
客户端接受服务器的响应数据之前,需要判断响应数据的完整性
xmlHttp.readyState
0 1 2 3 4
在XmlHttpRequest创建时,为该属性进行赋值
readyState=0
当使用XMlHttpRequest打开连接, readyState=1
当发送请求之后,readyState=2
监听到服务器接受到js发送的请求时 readyState=3
监听到服务器返回完整的响应数据是(处理完毕) readyState=4
xmlHttp.status
查看请求发送以及响应接受的整个流程中是否出现了异常信息
http状态码 (404 500 405 505 200) } xml数据传输方式:
代替普通文本方式
当服务器返回的数据(List Stu User) 客户端无法进行解析 新闻管理系统
当页面加载时,显示数据库中新闻表中的所有新闻列表 不能再jsp 中书写 java脚本
οnlοad=js事件 -- ajax请求 -- 获取新闻列表返回给客户端 List = new DaoImpl().getNewsList()