应用ajax实现检测注册用户名是否已经存在

前面写了一些ajax基础知识,那么具体如何应用?
在这里我将我3月12课件中的一个例子整理下来!
主要实现了用户注册自动检测用户名是否已经存在的功能!
类似 http://bbs.langsin.com/register.php,输入用户名注册可以检测是否已经存在,不过该网站的这个功能并没有应用ajax,而是类似服务器控件的回传,使整个页面有刷新。
这里还是使用的《 一个简单的Ajax开发框架》一文ajax小框架来做!开发工具选择Eclipse!
Step1:新建一个WEB项目,做一个login.jsp页面
ContractedBlock.gif ExpandedBlockStart.gif login.jsp
ExpandedBlockStart.gifContractedBlock.gif<%dot.gif@ page contentType="text/html; charset=gb2312"%>
ExpandedBlockStart.gifContractedBlock.gif
<%dot.gif@ page import="eflylab.ajax.login.*"%>
None.gif
<html>
None.gif
<head>
None.gif
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
None.gif
<title>Ch06--案例:数据校验</title>
None.gif
<link href="../../css/style.css" rel="stylesheet" type="text/css">
None.gif
<script language="javascript" src="../../ajax.js"></script><!-- 引入JS -->
ExpandedBlockStart.gifContractedBlock.gif
<script language="javascript">dot.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif
function doCheck(type) dot.gif{
InBlock.gif    
var f = document.forms[0];
ExpandedSubBlockStart.gifContractedSubBlock.gif    
if("user"==type) dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif        
if(f.username.value!=""dot.gif{
InBlock.gif            document.getElementById(
"feedback_info").innerHTML = "系统正在处理您的请求,请稍后。";
InBlock.gif            send_request(
"GET","registerCheck.jsp?field=username&value="+f.username.value,null,"text",showFeedbackInfo);
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockStart.gifContractedSubBlock.gif        
else dot.gif{
InBlock.gif            document.getElementById(
"feedback_info").innerHTML = "请输入用户名称。";
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedSubBlockStart.gifContractedSubBlock.gif    
else if("email"==type) dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif        
if(f.email.value!=""dot.gif{
InBlock.gif            
//正则表达式来检测电子邮件的格式
ExpandedSubBlockStart.gifContractedSubBlock.gif
            var pattern = /^[\w\.\-\_]+@dot.gif{1}\w+(\.dot.gif{1}\w+)+$/;
InBlock.gif            
var result = pattern.exec(f.email.value);
InBlock.gif            
if(result==null) window.alert("电子邮件格式错误,请按标准email名称格式填写,如:hello@sohu.com。");
ExpandedSubBlockStart.gifContractedSubBlock.gif            
else dot.gif{
InBlock.gif                document.getElementById(
"feedback_info").innerHTML = "系统正在处理您的请求,请稍后。";
InBlock.gif                send_request(
"GET","registerCheck.jsp?field=email&value="+f.email.value,null,"text",showFeedbackInfo);
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

ExpandedSubBlockStart.gifContractedSubBlock.gif        
else dot.gif{
InBlock.gif            document.getElementById(
"feedback_info").innerHTML = "请输入电子邮件。";
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedSubBlockEnd.gif}

InBlock.gif
//处理服务器回传信息函数
ExpandedSubBlockStart.gifContractedSubBlock.gif
function showFeedbackInfo() dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif    
if (http_request.readyState == 4dot.gif// 判断对象状态
ExpandedSubBlockStart.gifContractedSubBlock.gif
        if (http_request.status == 200dot.gif// 信息已经成功返回,开始处理信息
InBlock.gif
            //alert(http_request.responseText);
InBlock.gif
            document.getElementById("feedback_info").innerHTML = http_request.responseText;
ExpandedSubBlockStart.gifContractedSubBlock.gif        }
 else dot.gif//页面不正常
InBlock.gif
            alert("您所请求的页面有异常。");
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedSubBlockEnd.gif}

InBlock.gif
function aa()
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif    alert('OK');
ExpandedBlockEnd.gif}

None.gif
</script>
None.gif
</head>
None.gif
None.gif
<body><center>
None.gif
<form name="form1" method="post" action="">
None.gif    
<table width="500" border="0" cellspacing="0" cellpadding="4">
None.gif        
<caption>用户注册</caption>
None.gif        
<tr>
None.gif            
<td width="70">用户名称:</td>
None.gif            
<td width="414">
None.gif            
<input name="username" id="username" type="text" class="form_text" size="40" onBlur="doCheck('user')">
None.gif            
<input name="userCheck" type="button" class="button" id="userCheck" value="唯一性检查" onClick="doCheck('user')">
None.gif            
</td>
None.gif        
</tr>
None.gif        
<tr>
None.gif            
<td>密码:</td>
None.gif            
<td><input name="password" type="password" class="form_text" id="password" size="40"></td>
None.gif        
</tr>
None.gif        
<tr>
None.gif            
<td>电子邮件:</td>
None.gif            
<td><input name="email" type="text" class="form_text" id="email" size="40">
None.gif            
<input name="emailCheck" type="button" class="button" id="emailCheck" value="唯一性检查" onClick="doCheck('email')">
None.gif            
</td>
None.gif        
</tr>
None.gif        
<tr>
None.gif            
<td colspan="2"><label id="feedback_info" style="color:#FF0000">&nbsp;</label></td>
None.gif        
</tr>
None.gif        
<tr align="center">
None.gif            
<td colspan="2"><input name="Submit" type="submit" class="button" value="提交"></td>
None.gif        
</tr>
None.gif    
</table>
None.gif
</form>
None.gif
</center>
None.gif
</body>
None.gif
</html>
None.gif
在上面的login.jsp中 用户姓名一块触发了一个Javascript. 提交到registerCheck.jsp处理。
ContractedBlock.gif ExpandedBlockStart.gif registerCheck.jsp
ExpandedBlockStart.gifContractedBlock.gif<%dot.gif@ page contentType="text/html; charset=gb2312"%>
ExpandedBlockStart.gifContractedBlock.gif
<%dot.gif@ page import="eflylab.ajax.login.*"%>
ExpandedBlockStart.gifContractedBlock.gif
<%dot.gif
InBlock.gif
String field = request.getParameter("field");
InBlock.gif
String value = request.getParameter("value");
InBlock.gifUserService service 
= new UserService();
InBlock.gif
if("username".equalsIgnoreCase(field)) {
InBlock.gif    UserValue user 
= service.findUserByName(value);
InBlock.gif    
if(user!=null) out.println("用户名称["+value+"]已经被注册,请更换其他用户名称再注册。");
InBlock.gif    
else out.println("用户名称["+value+"]尚未被注册,您可以继续。");
InBlock.gif}
InBlock.gif
else if("email".equalsIgnoreCase(field)) {
InBlock.gif    try {
InBlock.gif        UserValue user 
= service.findUserByEmail(value);
InBlock.gif        
if(user!=null) out.println("电子邮件["+value+"]已经被注册,请更换其他用户名称再注册。");
InBlock.gif        
else out.println("电子邮件["+value+"]尚未被注册,您可以继续。");
InBlock.gif    }catch(Exception ex) {
InBlock.gif        out.println(ex.toString());
InBlock.gif    }
InBlock.gif}
InBlock.gif
else {
InBlock.gif    out.println(
"参数错误。");
ExpandedBlockEnd.gif}
None.gif
%>
None.gif
该页面调用javabean进行处理,然后在javabean中我们可以从数据库中检测数据,然后将结果返回!
login.jsp页面主要使用了responseTEXT来进行处理!
我们看到效果了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值