原生ajax执行流程
1.创建XMLRequest对象(ajax引擎)
2.注册回调函数
3.设置连接信息
4.发送信息,与服务器开始交互
5.接收服务器返回数据
function jsAjax() {
// 首先创建一个ajax引擎对象
var request = new XMLHttpRequest();
//给这个对象绑定事件
request.onreadystatechange = function () {
/**
* request.readyState 指的是xmlHttpRequest对象状态
* 1 Open open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
* 2 Sent Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
* 3 Receiving 所有响应头部都已经接收到。响应体开始接收但未完成。
* 4 Loaded HTTP 响应已经完全接收。
*/
if (request.readyState = 4 && request.status == 200) {
/**
* request.status 指的是响应的状态码
* request.responseText 指的是响应体的内容
* 对于一个请求,我们应该在得到响应之后才来做相应的操作。
* 所以需要等待request.readyState的状态变为4的时候,才去做相应操作。
* 而且我们应该是这个请求的响应状态是200的时候,才去做相应的处理。
*/
alert(request.responseText)
}
/**
* 设置请求发送的参数
* 第一个参数:请求的方式
* 第二个参数:请求的地址
* 第三个参数:是否是异步
*/
request.open("get", "${pageContext.request.contextPath}/DemoServlet?username=zhangsan", true);
//发送请求
request.send();
}
}
JSP中动态INCLUDE与静态INCLUDE的区别:
动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静态INCLUDE用include伪码实现,不会检查所含文件的变化,适用于包含静态页面