AJAX请求
ajax请求是依靠XMLHttpRequest对象,因此在请求前先要创建其对象
var xmlhttp;//兼容性写法创建请求实例,IE5 6支持else里面的方法if (window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}接着向服务器发送请求
//设置传送方式,地址,以及同步还是异步xmlhttp.open("GET","Test.jsp?value="+escape(value),true);xmlhttp.onreadystatechange = callback;//状态改变的时候执行这个函数,用来判断是否请求完毕xmlhttp.send();//请求服务器,如果使用post方式,则send里面要带上传递的参数//post方式/**xmlhttp.open("POST","Test.jsp",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("value="+value);*/然后服务器端处理并返回,这个放在实例里面有具体代码
function callback(){//请求完成表示if(xmlhttp.readyState ==4 && xmlhttp.status==200){//设置相应操作}}}总体来说就这几个步骤,下面是详细代码
<form method="post" action="AJAX.jsp"><table><tr><td><input type="text" id="userid" onblur="checkuser()" ><span style="color: red" id="spanid"></span></td></tr></table></form>接下来是JS代码,使用AJAX把输入的内容发送到服务器,服务器来检验
var xmlhttp;function checkuser(){var value = document.getElementById("userid").value;//兼容性写法创建请求实例,IE5 6支持else里面的方法if (window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}else {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}//设置传送方式,地址,以及同步还是异步xmlhttp.open("GET","Test.jsp?value="+escape(value),true);xmlhttp.onreadystatechange = callback;//状态改变的时候执行这个函数,用来判断是否请求完毕xmlhttp.send();//请求服务器}然后服务器端获得数据后写回
<%response.setHeader("Cache-Control","no-store");//HTTP1.1response.setHeader("Pragma","no-cache");//HTTP1.0response.setDateHeader("Expires",0);//禁止在服务器中缓存String value = request.getParameter("value");//获取传送过来的参数response.getWriter().write(value);//模拟数据写回%>
/*** 回调函数*/function callback(){//请求完成表示if(xmlhttp.readyState ==4 && xmlhttp.status==200){alert(xmlhttp.responseText);//相应返回的text// alert(xmlhttp.responseXML);//相应返回的xmlif (xmlhttp.responseText){//这里直接判断不为空,应该根据数据库返回值来进行不同的显示var spanid = document.getElementById("spanid");spanid.innerHTML = "注册成功";}}}效果就是当输入框失去焦点就立即判断,当然实际判断是要连接数据库的,为了简单就直接打印出来了
以上内容是针对AJAX和JSP混合使用方法实例,希望对大家有所帮助!