第一个ajax例子【ajax有哪几种啊,了解的指导哈】

Ajax小例:登陆时验证用户是否存在,使用AJAX验证,无刷新
如果登陆成功则跳转到一个分页列表页面,使用AJAX实现分页效果


Action内的代码:

//返回该登陆页面,并予以错误提示信息
response.setContentType("application/xml"); //application/xml代表的是XML形式返回
response.setHeader("Cache-Control", "no-cache"); //设置不缓存

//组织返回数据
String xml="<?xml version=\"1.0\" encoding=\"gb2312\"?>";
xml+="<message>";
xml+="<info>";
xml+="<teacher><name>name01</name><age>20</age></teacher>";
xml+="<teacher><name>name02</name><age>20</age></teacher>";
xml+="<teacher><name>name03</name><age>20</age></teacher>";
xml+="</info>";
xml+="<returnmessage>";
xml+="<returnCode>9999</returnCode>";
xml+="</returnmessage>";
xml+="</message>";

PrintWriter pw=null;
try {
//获取页面写入器
pw=response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
pw.write(xml);
pw.flush();
pw.close();
return null;


JSP里解析获取数据:

<body>
<html:form action="/login.do?method=login" method="post">
<html:text property="username"></html:text>
<html:checkbox property="check" οnclick="usernameCheck()">是否已经存在</html:checkbox>
<html:text property="password"></html:text>
<html:submit></html:submit>
<html:reset></html:reset>
<span id="checklogin"/>
</html:form><br><br><br></body>
<script>
var req; //定义全局变量
function usernameCheck()
{
var username=document.getElementById("username").value;
var password=document.getElementById("password").value;
var url="login.do?method=login&username="+username+"&password="+password;

if(window.XMLHttpRequest)
{
req=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
req=new ActiveXObject("Microsoft.XMLHttp");
}
if(req){
req.open("get",url,true);
req.onreadyStatechange=callback; //调用回调函数
req.send(null);
}
return false;
}

function callback()
{
if(req.readyState==4) //加载完毕
{
if(req.status==200)
{
parseMessage(); //解析数据
}
else
{
alert(req.status);
alert('Not able to litrieve description');
}
}
else
{
//正在加载
document.getElementById("checklogin").innerHTML="正在加载........";
}
}

function parseMessage()
{
this.itemList = new Array();
var xmlDoc=req.responseXML.documentElement; //接收XML格式的数据
var messages=xmlDoc.getElementsByTagName("info");
var mlength=messages.length;
alert(mlength);
if(mlength>0)
{
var teacher=messages[0].getElementsByTagName("teacher");
for( var j=0;j<teacher.length;j++)
{
var name=teacher[j].getElementsByTagName("name")[0].firstChild.nodeValue;
var age=teacher[j].getElementsByTagName("age")[0].firstChild.nodeValue;
alert('No:0'+' name:'+name+'\nage:'+age);
this.itemList.push(new Array(name,age));
}
}

var returnmessage=xmlDoc.getElementsByTagName("returnmessage");
var returnCode=returnmessage[0].getElementsByTagName("returnCode")[0].firstChild.nodeValue;

alert(this.itemList.length);
document.getElementById("checklogin").innerHTML=returnCode;
}

</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值