Ajax应用简单实例

系统 1542 0
当用户登录时检查用户名和企业名是否可用,以前的做法是在旁边加一个按钮,点击“检查”,就向服务器发出请求,然后等待……服务器返回信息,继续操作。

  如果我们用AJAX技术来实现以上的操作则不必等待服务器返回信息,用户输入用户名或企业名称的时候,当输入文本框失去焦点的时候,则会自动向 服务器发出请求,用户继续做下面的操作,不必点击“检查”,也不必等待服务器返回信息,检查与用户操作是异步的,可同时进行。当服务器信息返回的时候,会 自动在面页相应位置显示返回信息,不必刷新页面,相当于局部刷新的效果。 下面我们来看代码吧。


测试页面:ajaxtest.jsp

<% ... @pagelanguage = " java " contentType = " text/html;charset=GBK " %>
< script language ="javascript" type ="text/javascript" > ...
<!--
var http = getHTTPObject();

function getHTTPObject() ... {
var xmlhttp = false ;
if (window.XMLHttpRequest) ... {
xmlhttp
= new XMLHttpRequest();
if (xmlhttp.overrideMimeType) ... {
xmlhttp.overrideMimeType(
" text/xml " );
}

}
else ... {
try ... {
xmlhttp
= new ActiveXObject( " Msxml2.XMLHTTP " );
}
catch (e) ... {
try ... {
xmlhttp
= new ActiveXObject( " Microsoft.XMLHTTP " );
}
catch (E) ... {
xmlhttp
= false ;
}

}

}

return xmlhttp;
}


function chkUser() ... {
var url = " CheckUserAndComNm.jsp " ;
var name = document.getElementById( " username " ).value;
url
+= " ?oprate=chkUser&userName= " + name;

http.open(
" GET " ,url, true );
http.onreadystatechange
= handleHttpResponse;
http.send(
null );
return ;
}


function handleHttpResponse() ... {
if (http.readyState == 4 ) ... {
if (http.status == 200 ) ... {
var xmlDocument = http.responseXML;
if (http.responseText != "" ) ... {
document.getElementById(
" showStr " ).style.display = "" ;
document.getElementById(
" userName " ).style.background = " #FF0000 " ;
document.getElementById(
" showStr " ).innerText = http.responseText;
}
else ... {
document.getElementById(
" userName " ).style.background = " #FFFFFF " ;
document.getElementById(
" showStr " ).style.display = " none " ;
}

}
else ... {
alert(
" 你所请求的页面发生异常,可能会影响你浏览该页的信息 " );
alert(http.status);
}

}

}

// -->
</ script >
< body topmargin ="0" >
< form name ="form1" method ="post" action ="CheckUserAndComNm.jsp" >
< table width ="100%" >
< tr >< td align ="center" >< H2 > Ajax演示程序 </ H2 ></ td ></ tr >
< tr >< td align ="center" > 个人注册 </ td ></ tr >
</ table >

< HR >

< table width ="400" border ="0" cellpadding ="1" cellspacing ="1" align ="center" >
< tr >
< td >< font color ="red" > * </ font ></ td >
< td > 用户帐号: </ td >
< td >
< input type ="text" name ="userName" maxlength ="20" style ="background:#FFFFFF" onBlur ="chkUser()" value ="" />

</ td >
</ tr >

< tr >
< td colspan =3 >
< span id ="showStr" style ="background-color:#FF9900;display:none" ></ span >
</ td >
</ tr >

</ table >

< div align ="center" >
< input type ="submit" name ="ok" value ="确定" >
< input type ="reset" name ="reset" value ="取消" >
</ div >
</ form >
</ body >

验证页面代码:CheckUserAndComNm.jsp

<% ... @pagelanguage = " java " contentType = " text/html;charset=GB2312 "
pageEncoding
= " GB2312 "
%>

<% ...
String msgStr = "" ;
String oprate = request.getParameter( " oprate " );
String userName = request.getParameter( " userName " );
// out.println( " oprate= " + oprate);
// out.println( " userName= " + userName);
try{
if (oprate.equals( " chkUser " ))
{
response.setContentType(
" text/html;charset=GB2312 " );
if (userName.length() < 5 ||userName.length() > 20 )
{
msgStr
= " 用户名必须为字母,数字或下划县,长度为5-20个字符! " ;
}
else {
if (userName.equals( " oscar " ))
msgStr
= " 对不起,此用户已经存在 " ;
else
msgStr
= "" ;

}
}
response.getWriter().write(msgStr);
}catch(Exceptione){

}finally{
// request.setAttribute( " url " ,url);
}


%>

Ajax应用简单实例

Ajax应用简单实例


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论