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

2 篇文章 0 订阅
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;
}


由此就可以实现注册的时候,校验注册用户名是否已经存在的功能了。
可以使用Ajax技术实现检测注册用户名是否重复,具体实现步骤如下: 1. 在注册页面添加一个用户名输入框和一个检测按钮。 2. 当用户输入完用户名后,点击检测按钮触发Ajax请求。 3. 在Ajax请求中,将用户名作为参数传递给服务器端。 4. 服务器端根据传递的用户名,在数据库中查询是否存在相同的用户名。 5. 服务器端将查询结果返回给客户端。 6. 客户端接收到服务器端返回的结果后,根据结果提示用户该用户名是否可用。 以下是一个简单的Ajax实现检测注册用户名是否重复的示例代码: ``` // HTML代码 <input type="text" id="username" /> <button onclick="checkUsername()">检测用户名</button> // JavaScript代码 function checkUsername() { var username = document.getElementById("username").value; var xhr = new XMLHttpRequest(); xhr.open("POST", "check_username.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var result = xhr.responseText; if (result == "exist") { alert("该用户名已存在,请重新输入!"); } else { alert("该用户名可用!"); } } }; xhr.send("username=" + username); } // PHP代码(check_username.php) $username = $_POST["username"]; // 在数据库中查询是否存在相同的用户名 if (存在相同的用户名) { echo "exist"; } else { echo "not exist"; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值