JavaWeb ajax
标签(空格分隔): JavaWeb ajax
Ajax
Ajax 技术核心是XMLHttpRequest 对象(简称XHR),这是由微软首先引入的一个特性,其他浏览器提供商后来都提供了相同的实现。在XHR出现之前,Ajax 式的通信必须借助一些hack 手段来实现,大多数是使用隐藏的框架或内嵌框架。
XHR 的出现,提供了向服务器发送请求和解析服务器响应提供了流畅的接口。能够以异步方式从服务器获取更多的信息,这就意味着,用户只要触发某一事件,在不刷新网页的情况下,更新服务器最新的数据。
虽然Ajax 中的x 代表的是XML,但Ajax 通信和数据格式无关,也就是说这种技术不一定使用XML。
创建XHR 对象
创建XHR 对象可以直接实例化XMLHttpRequest
var xhr = new XMLHttpRequest();
使用XHR 对象
- 调用open()方法
xhr.open(‘get’,‘demo.jsp’, false);
xhr.open(‘post’,‘demo.jsp’, false);
false 同步,true异步
open()方法并不会真正发送请求,而只是启动一个请求以备发送 - get发送请求
xhr.send(null); //发送请求 使用get方法时 - post发送请求
xhr.open(‘post’,’/web03_2/checkCustomerNameServlet’,true);
xhr.setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”);
//客户端提交给服务器文本内容的编码方式 是URL编码,即除了标准字符外,每字节以双字节16进制前加个“%”表示
xhr.send(“cu_name=”+t);
status 属性
接受响应之后,第一步检查status 属性,以确定响应已经成功返回。
xhr.responseText
返回Servlet中的输出
writer.write(new CustomerController().CheckCustomerName(cu_name)+"");
必须以字符串的格式才能接收
onreadystatechange
使用异步调用的时候,需要触发xhr.onreadystatechange 事件,然后检测readyState 属性即可。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cb5377df896872ff1b1fa2fb70bad064.png)
接收实例
xhr.onreadystatechange=function(){
if(xhr.status==200){
if(xhr.readyState==4){
var c = xhr.responseText;
if(c>0){
alert("用户名已经存在");
flag = false;
}else{
flag=true;
}
}
}
}