ajax异步检验会员注册是否存在

从网上整理所得:

注册页面调用ajax请求:

<%@ page language="java" contentType="text/html; charset=UTF-8" 

pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
<script type="text/javascript"> 
var xmlHttp; 
//创建Ajax核心对象XMLHttpRequest 
function createXMLHttp(){ 
if(window.XMLHttpRequest){ 
xmlHttp = new XMLHttpRequest(); 
}else{ 
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 


function checkUsername(username){ 
createXMLHttp(); 

//设置请求方式为GET,设置请求的URL,设置为异步提交 
xmlHttp.open("GET","CheckServlet?username="+username,true); 

//将方法地址复制给onreadystatechange属性 
//类似于电话号码 
xmlHttp.onreadystatechange = checkUsernameCallback(); 
//将设置信息发送到Ajax引擎 
xmlHttp.send(null); 

function checkUsernameCallback(){ 
//Ajax引擎状态为成功 
if(xmlHttp.readyState == 4){ 
//HTTP协议状态为成功 
if(xmlHttp.status == 200){ 
var text = xmlHttp.responseText; 
if(text == "true"){ 

document.getElementById("msg").innerHTML = "此用户名已存在,无法使用!"; 

document.getElementById("msg").style.color="red";

}else{ 

document.getElementById("msg").innerHTML = "此用户名可以使用"; 

document.getElementById("msg").style.color="green";





</script> 
</head> 
<body> 
<form action="regist.jsp" method="post"> 
用户名:<input type="text" name="username" οnblur="checkUsername(this.value)"><span id="msg"></span><br/> 
密  码:<input type="password" name="password"><br/> 
<input type="submit" value="注册"> 
<input type="reset" value="重置"> 
</form> 
</body> 

</html> 

CheckServlet.java 

public class CheckServlet extends HttpServlet { //可以在其中把查询数据库的请求转到对应的model层
private static final long serialVersionUID = 1L; 
public static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
public static final String DBURL = "jdbc:sqlserver://localhost:1433;DatabaseName=bbs"; 
public static final String DBUSER = "sa"; 
public static final String DBPASS = "pass"; 

public CheckServlet() { 
super(); 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
this.doPost(request, response); 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
request.setCharacterEncoding("UTF-8"); 
response.setContentType("text/html"); 
Connection conn = null; 
PreparedStatement pst = null; 
ResultSet rs = null; 
PrintWriter out = response.getWriter(); 
String username = request.getParameter("usernaem"); 
try{ 
Class.forName(DBDRIVER); 
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); 
String sql = "select count(username) from user where username=?"; 
pst = conn.prepareStatement(sql); 
pst.setString(1,username); 
rs = pst.executeQuery(); 
if(rs.next()){ 
if(rs.getInt(1)>0){//用户名已经存在了 
out.print("true"); 
}else{ 
out.print("false"); 



}catch(Exception e){ 
e.printStackTrace(); 
}finally{ 
try{ 
conn.close(); 
}catch(Exception e){ 
e.printStackTrace(); 




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值