Ajax进行异步校验

  1. <html>  
  2. <head><title>异步验证</title></head>  
  3. <body>  
  4. <script language="JavaScript">  
  5.     var xmlHttp;  
  6.     var flag;  
  7.     function createXMLHttp(){  
  8.         if (window.XMLHttpRequest){                     // 创建XMLHttpRequest核心对象  
  9.             xmlHttp = new XMLHttpRequest()                  // 使用FireFox内核  
  10.         }else {  
  11.             xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   // 使用IE内核的浏览器  
  12.         }  
  13.     }  
  14.   
  15.     function checkUserid(userid){       // 显示信息  
  16.         createXMLHttp();    //  
  17.         // 设置请求,通过地址重写方式将userid传递到JSP中  
  18.           
  19.         xmlHttp.open("POST","CheckServlet?userid="+userid);  
  20.         // 设置完请求后调用处理回调函数  
  21.         xmlHttp.onreadystatechange = checkUseridCallback;  
  22.         xmlHttp.send(null); // 发送请求,不设置参数  
  23.         //document.getElementById("msg").innerHTML = "正在验证……";  
  24.                 //alert("*******");  
  25.   
  26.     }  
  27.   
  28.     function checkUseridCallback(){ // 回调函数  
  29.         if (xmlHttp.readyState == 4){           // 数据返回完毕  
  30.             if (xmlHttp.status == 200){         // HTTP操作正常  
  31.                 alert("*****8");  
  32.                 var text = xmlHttp.responseText;// 接收返回内容  
  33.                 if (text == "true"){  
  34.                     flag = false;               // 无法提交表单  
  35.                     document.getElementById("msg").innerHTML = "用户名ID重复,无法使用";  
  36.                 }else {  
  37.                     flag = true;                // 可以提交表单  
  38.                     document.getElementById("msg").innerHTML = "恭喜!此用户ID可以注册";  
  39.                 }  
  40.             }  
  41.         }  
  42.     }  
  43.   
  44.     function checkForm(){   // 对表单判断能否进行提交操作  
  45.         return flag;  
  46.     }  
  47. </script>  
  48.     <form action="xxx.jsp" method="post" onsubmit="return checkForm()">  
  49.         用户ID:<input type="text" name="userid" onblur="checkUserid(this.value)"><span id="msg"></span><br>  
  50.         姓  名:<input type="text" name="name"><br>  
  51.         密  码:<input type="password" name="password"><br>  
  52.         <input type="submit" value="注册">  
  53.         <input type="reset" value="重置">  
  54.     </form>  
  55. </body>  
  56. <html>  

 

 

 


 Sevlet.java

 

[java] view plain copy
  1. package zz.ajax;  
  2. import java.io.*;  
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.ResultSet;  
  6. import java.sql.PreparedStatement;  
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11. public class CheckServlet extends HttpServlet{  
  12.     public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";  
  13.     public static final String DBURL = "jdbc:mysql://localhost:3306/zz";  
  14.     public static final String DBUSER = "root";  
  15.     public static final String DBPASSWORD = "mysql";  
  16.   
  17.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  18.                throws ServletException,java.io.IOException{  
  19.         this.doPost(request, response);  
  20.     }  
  21.   
  22.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  23.                throws ServletException,java.io.IOException{  
  24.         request.setCharacterEncoding("GBK");  
  25.         response.setContentType("text/html");       // 设置回应的MIME  
  26.         Connection conn = null;  
  27.         PreparedStatement pstmt = null;  
  28.         ResultSet rs = null;  
  29.         PrintWriter out = response.getWriter();     // 接收验证的userid  
  30.         String userid = request.getParameter("userid");  
  31.         try{  
  32.             Class.forName(DBDRIVER);    // 加载驱动  
  33.             conn = DriverManager.  
  34.                 getConnection(DBURL, DBUSER, DBPASSWORD);   // 连接数据库  
  35.   
  36.             String sql = "SELECT COUNT(userid) FROM user WHERE userid=?";  
  37.             pstmt = conn.prepareStatement(sql);  
  38.             pstmt.setString(1, userid);  
  39.             rs = pstmt.executeQuery();  
  40.             System.out.printf("*********");  
  41.             if (rs.next()){  
  42.                 if (rs.getInt(1) > 0){       // 判断ID是否已存在  
  43.                     out.print("true");      // 已存在  
  44.                 }else {  
  45.                     out.print("false");  
  46.                 }  
  47.             }  
  48.             out.close();  
  49.               
  50.         }catch (Exception e){  
  51.             e.printStackTrace();  
  52.         }finally {  
  53.             try{  
  54.                 conn.close();  
  55.             }catch (Exception e){  
  56.                 e.printStackTrace();  
  57.             }  
  58.         }  
  59.     }  
  60.   
  61. }   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值