AJAX注册重名检测(绝对没有bug!)

原创 2007年10月06日 01:24:00

将我以前写的AJAX代码贡献出来 

大家一起学习,绝对没有BUG!

共两个文件

ValidationServlet.java

validation.html

 //ValidationServlet.java

package ajaxbook.chap4;

import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import bookshop.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ValidationServlet extends HttpServlet {   
   
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        PrintWriter out = response.getWriter();
       
        boolean passed = validateDate(request.getParameter("name"));
        response.setContentType("text/xml");
        response.setHeader("Cache-Control", "no-cache");
        String message = "Name Double!";
       
        if (passed) {
            message = "dgdf";
        }
        out.println("<response>");
        out.println("<passed>" + Boolean.toString(passed) + "</passed>");
  out.println("<message>" + message + "</message>");
        out.println("</response>");
        out.close();
     }
   
    /**
     * Checks to see whether the argument is a valid date.
     * A null date is considered invalid. This method
     * used the default data formatter and lenient
     * parsing.
     *
     * @param date a String representing the date to check
     * @return message a String represnting the outcome of the check
     */
    private boolean validateDate(String date){
       
        boolean isValid = true;
 String sql = "SELECT * FROM userpassword WHERE user_id='"+date+"';";
  DBSQLManager dbsm = new DBSQLManager();
  dbsm.setSqlStr(sql);

        try
        {

 dbsm.executeQuery();
 ResultSet rs =  dbsm.getRs();
 if (rs.next())
     {
            isValid = false;
     }

          }
        catch(Exception exception)
        {
            System.out.println(exception);
        };


        return isValid;
    }
}

 

//validation.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <title>Using Ajax for validation</title>
 
    <script type="text/javascript">
        var xmlHttp;

        function createXMLHttpRequest() {
            if (window.ActiveXObject) {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest) {
                xmlHttp = new XMLHttpRequest();               
            }
        }

        function validate() {
            createXMLHttpRequest();
            var date = document.getElementById("name");
            var url = "ValidationServlet?name=" + escape(date.value);
            xmlHttp.open("GET", url, true);
            xmlHttp.onreadystatechange = callback;
            xmlHttp.send(null);
        }

        function callback() {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    var mes = xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
     var val = xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
                    setMessage(mes,val);
                }
            }
        }
       
        function setMessage(message,isValid) {           
            var messageArea = document.getElementById("dateMessage");
            var nameArea = document.getElementById("name");
            var fontColor = "red";
            if (isValid == "true") {
               messageArea.innerHTML = "";

            }
   else{
            messageArea.innerHTML = "<font color=" + fontColor + ">" + message + " </font>";
   nameArea.value="";
      nameArea.focus();
      }
        }

    </script>
  </head>
  <body>
    <h1>Enter your name</h1>
    Your name: <input type="text" size="10" id="name" onchange="validate();"/>
    <div id="dateMessage"></div>
  </body>
</html>

相关文章推荐

jQuery+Ajax+Mysql 检测用户名注册时是否重名

利用jQuery框架,封装了底层的Ajax异步技术,通过简单的方法调用即可实现。这篇博客是针对用户注册时出现的用户名重名问题的自动检测,利用的技术是Ajax异步传输。register.jsp 注册显示...

AJAX+Struts2实例:实现注册重名检验

注册重名检验

异步ajax验证用户名(防止重名)

  • 2011年11月11日 22:09
  • 28KB
  • 下载

注册页中检测用户是否存在(简单的JQ版Ajax应用)

第1步:放置ASP.NET服务器控件主要代码(.aspx) 登录名: ...
  • hi_dzj
  • hi_dzj
  • 2011年12月02日 19:28
  • 868

利用AJAX来检测用户名是否已经被注册

实现功能: 在注册表单中,当用户填写了用户名后,把光标移开后,会自动向服务器发送异步请求。服务器返回true或false,返回true表示这个用户名已经被注册过,返回false表示没有注册过。客户端...

使用jquery+ajax方式实现用户注册时,检测用户名是否存在

使用jquery+ajax方式实现用户注册时,检测用户名是否存在    使用jquery+ajax方式实现用户注册时,检测用户名是否存在 /* ...
  • deron7
  • deron7
  • 2011年12月07日 19:48
  • 5527

ajax学习之xml数据处理实例(网页注册用户名无刷新检测)

用户注册     用户名字:             用户密码:     电子邮件:                        ...

利用ajax实现多种注册角色的注册登录检测

页面A.aspx://这里我将js写在一个js文件中,用的时候直接导入就可以了。js文件内容在下面:标签内的内容: 请问要注册以下哪种身份?                            //...
  • bin6120
  • bin6120
  • 2011年06月25日 13:33
  • 151
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AJAX注册重名检测(绝对没有bug!)
举报原因:
原因补充:

(最多只允许输入30个字)