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

 

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

前面写了一些ajax基础知识,那么具体如何应用?
在这里我将我3月12课件中的一个例子整理下来!
主要实现了用户注册自动检测用户名是否已经存在的功能!
类似 http://bbs.langsin.com/register.php,输入用户名注册可以检测是否已经存在,不过该网站的这个功能并没有应用ajax,而是类似服务器控件的回传,使整个页面有刷新。
这里还是使用的《 一个简单的Ajax开发框架》一文ajax小框架来做!开发工具选择Eclipse!
Step1:新建一个WEB项目,做一个login.jsp页面

<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="eflylab.ajax.login.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Ch06--案例:数据校验</title>
<link href="../../css/style.css" rel="stylesheet" type="text/css">
<script language="javascript" src="../../ajax.js"></script><!-- 引入JS -->
<script language="javascript">
function doCheck(type) {
    
var f = document.forms[0];
    
if("user"==type) {
        
if(f.username.value!=""{
            document.getElementById(
"feedback_info").innerHTML = "系统正在处理您的请求,请稍后。";
            send_request(
"GET","registerCheck.jsp?field=username&value="+f.username.value,null,"text",showFeedbackInfo);
        }

        
else {
            document.getElementById(
"feedback_info").innerHTML = "请输入用户名称。";
        }

    }

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

        }

        
else {
            document.getElementById(
"feedback_info").innerHTML = "请输入电子邮件。";
        }

    }

}

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

    }

}

function aa()
{
    alert('OK');
}

</script>
</head>

<body><center>
<form name="form1" method="post" action="">
    
<table width="500" border="0" cellspacing="0" cellpadding="4">
        
<caption>用户注册</caption>
        
<tr>
            
<td width="70">用户名称:</td>
            
<td width="414">
            
<input name="username" id="username" type="text" class="form_text" size="40" onBlur="doCheck('user')">
            
<input name="userCheck" type="button" class="button" id="userCheck" value="唯一性检查" onClick="doCheck('user')">
            
</td>
        
</tr>
        
<tr>
            
<td>密码:</td>
            
<td><input name="password" type="password" class="form_text" id="password" size="40"></td>
        
</tr>
        
<tr>
            
<td>电子邮件:</td>
            
<td><input name="email" type="text" class="form_text" id="email" size="40">
            
<input name="emailCheck" type="button" class="button" id="emailCheck" value="唯一性检查" onClick="doCheck('email')">
            
</td>
        
</tr>
        
<tr>
            
<td colspan="2"><label id="feedback_info" style="color:#FF0000">&nbsp;</label></td>
        
</tr>
        
<tr align="center">
            
<td colspan="2"><input name="Submit" type="submit" class="button" value="提交"></td>
        
</tr>
    
</table>
</form>
</center>
</body>
</html>
在上面的login.jsp中 用户姓名一块触发了一个Javascript. 提交到registerCheck.jsp处理。

<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="eflylab.ajax.login.*"%>
<%
String field = request.getParameter("field");
String value = request.getParameter("value");
UserService service 
= new UserService();
if("username".equalsIgnoreCase(field)) {
    UserValue user 
= service.findUserByName(value);
    
if(user!=null) out.println("用户名称["+value+"]已经被注册,请更换其他用户名称再注册。");
    
else out.println("用户名称["+value+"]尚未被注册,您可以继续。");
}
else if("email".equalsIgnoreCase(field)) {
    try {
        UserValue user 
= service.findUserByEmail(value);
        
if(user!=null) out.println("电子邮件["+value+"]已经被注册,请更换其他用户名称再注册。");
        
else out.println("电子邮件["+value+"]尚未被注册,您可以继续。");
    }catch(Exception ex) {
        out.println(ex.toString());
    }
}
else {
    out.println(
"参数错误。");
}
%>
该页面调用javabean进行处理,然后在javabean中我们可以从数据库中检测数据,然后将结果返回!
login.jsp页面主要使用了responseTEXT来进行处理!
我们看到效果了!
 
文章出自: http://www.cnblogs.com/eflylab/archive/2007/03/14/674768.html
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值