`
c_bai
  • 浏览: 37203 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

用ajax实现检测注册用户名是否重复的完整例子

    博客分类:
  • java
阅读更多
ValidateName.java代码如下所示,并且采用userIsExist查找数据库看是否存在相同的用户名。
package com.wuliu.test;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.wuliu.dao.LoginDAO;

public class ValidateName extends HttpServlet {
	public ValidateName(){
		super();
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		LoginDAO dao = new LoginDAO();
		boolean flag = false;
		String loginName=request.getParameter("loginName").toString();
		flag = dao.userIsExist(loginName);
		if(true == flag)
		{
			response.getWriter().write("true");//此值jquery可以接收到  
		}
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response); 
		
	}

}



public boolean userIsExist(String loginId){
			 	System.out.println("Enter userIsExist");
				this.dao = new DBConnection();
				this.cn = this.dao.getConnection();
		        // 根据指定用户名查询用户信息
				String sql = "select * from LoginTable where LoginId='"+loginId+"'";
				System.out.println("logid:"+loginId);
				try {
		            // 获取PreparedStatement对象
		        	this.ps = this.cn.prepareStatement(sql);
		            // 对用户对象属性赋值
		           // ps.setString(1, loginId);
		            // 执行查询获取结果集
		            rs = this.ps.executeQuery();
		            // 判断结果集是否有效
		           // System.out.println("rs.next()= "+rs.next());
		            if(false == rs.next()){
		                // 如果无效则证明此用户名可用
		            	System.out.println("用户名可用");
		                return true;
		            }
		            // 释放此 ResultSet 对象的数据库和 JDBC 资源
		            rs.close();
		            // 释放此 PreparedStatement 对象的数据库和 JDBC 资源
		            ps.close();
		        } catch (SQLException e) {
		            e.printStackTrace();
		        }finally{
		            // 关闭数据库连接
		        	this.dao.closeConnection(cn);
		        }
		        System.out.println("用户名不可用");
		        return false;
		    }




	<form action="register.do?action=add" onsubmit="return submessage(this)" method="post" name="form1">
			<table border="1" width="500" cellspacing="1" cellpadding="3" align="left" bordercolor="#326598" >
				<tr>
					<td colspan="7" bgcolor="#FEA817">
						[align=center]
							<font color="#FFFFFF"><b>用户注册</b> </font>
						[/align]
					</td>
				</tr>
				<tr>
					<td>
						用户名
					</td>
					<td>
						<input name="uname" id="username" type="text" class="form_text" size="20" onblur="validatorloginName()">      
					</td>
				</tr>
				
				<tr>
					<td>
						登陆密码
					</td>
					<td>
						<input type="password" name="upwd">
					</td>
				</tr>
				<tr>
					<td>
						确认密码
					</td>
					<td>
						<input type="password" name="upwd1">
					</td>
				</tr>
				<tr>
					<td colspan="2" align="center">
						<input type="submit" value="提交">
						<input type="reset" value="重置">
					</td>
				</tr>
			</table>
					</form>




通过ajax将注册用户名发送到ValidateName.do进行校验。
页面上添加的ajax组件:
<script src="/js/jquery/jquery-1.3.2.js" type="text/javascript"></script>  
    <script type="text/javascript" language="javascript">  
function validatorloginName(){
		 var loginName=document.getElementById("uname").value;
		 if(loginName == "")
		 {
		 	alert("用户名不能为空!");
		 	return;
		 }
		 $.ajax({
		 		type: "POST",    
		         url: "ValidateName",    
		          data: "loginName="+loginName, 
		         success: function(data){
			    if(data=="true"){   
			     alert("恭喜您!用户名没有被使用!");  
			   
			    }else{   
			     alert("抱歉!用户名已存在!");   
		    	} 
		  		}          
		        });   
		}		
</script>


web.xml里面配置如下:

<servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>ValidateName</servlet-name>
    <servlet-class>com.wuliu.test.ValidateName</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ValidateName</servlet-name>
    <url-pattern>/ValidateName</url-pattern>
  </servlet-mapping>



分享到:
评论

相关推荐

    ajax检测用户名

    在网页开发中,"Ajax 检测用户名"是一个常见的功能,它允许用户在输入用户名时实时检查该用户名是否已被占用,从而提供更好的用户体验。这个功能主要基于 JavaScript 的 AJAX(Asynchronous JavaScript and XML)...

    Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)

    总结来说,Asp.net下利用jQuery AJAX实现用户注册检测,主要涉及以下知识点: 1. **jQuery**:一个流行的JavaScript库,用于简化DOM操作、事件处理、动画效果以及Ajax交互。 2. **jQuery FormValidator 插件**:...

    Ajax表单验证自动检测是否重名

    在本场景中,我们探讨的是如何使用Ajax进行表单验证,特别是针对用户输入的唯一性检查,例如检测用户名是否重名。这种功能在注册、创建账号或者设置唯一标识符的场合非常常见,它能提供即时反馈,提升用户体验。 ...

    struts+ajax实例

    本实例主要讲解如何在Struts2中集成AJAX,实现注册用户的即时用户名可用性检查。这个功能对于防止用户提交重复或已被占用的用户名非常有用。 首先,我们需要了解Struts2和AJAX的基础知识。Struts2是一个强大的MVC...

    [完整][中文][WEB安全测试].(美)霍普.扫描版.pdf

     ·作为自动化测试的出发点,通过使用秘诀中的脚本和例子,使你的测试可重复  不用再担心午夜来电话告诉你站点被破坏了。通过本书和示例中所用的免费工具,你可以将安全因素加入到你的测试套装中,从而得以睡个...

Global site tag (gtag.js) - Google Analytics