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

网上搜索了很多案例,但都和自己的需求不一样。 
最终实现了下面的例子实现了对注册用户名的校验。采用的架构是servelet+jsp. ValidateName.java代码如下所示,并且采用userIsExist查找数据库看是否存在相同的用户名。 

Java代码  

1.  package com.wuliu.test;  

2.  import java.io.IOException;  

3.  import java.io.PrintWriter;  

4.    

5.  import javax.servlet.ServletException;  

6.  import javax.servlet.http.HttpServlet;  

7.  import javax.servlet.http.HttpServletRequest;  

8.  import javax.servlet.http.HttpServletResponse;  

9.  import com.wuliu.dao.LoginDAO;  

10.  

11.public class ValidateName extends HttpServlet {  

12.    public ValidateName(){  

13.        super();  

14.    }  

15.  

16.    public void doGet(HttpServletRequest request, HttpServletResponse response)  

17.            throws ServletException, IOException {  

18.  

19.        response.setContentType("text/html");  

20.        LoginDAO dao = new LoginDAO();  

21.        boolean flag = false;  

22.        String loginName=request.getParameter("loginName").toString();  

23.        flag = dao.userIsExist(loginName);  

24.        if(true == flag)  

25.        {  

26.            response.getWriter().write("true");//此值jquery可以接收到    

27.        }  

28.    }  

29.  

30.      

31.    public void doPost(HttpServletRequest request, HttpServletResponse response)  

32.            throws ServletException, IOException {  

33.  

34.        this.doGet(request, response);   

35.          

36.    }  

37.  

38.}  

 

Java代码  

1.  public boolean userIsExist(String loginId){  

2.                  System.out.println("Enter userIsExist");  

3.                  this.dao = new DBConnection();  

4.                  this.cn = this.dao.getConnection();  

5.                  // 根据指定用户名查询用户信息  

6.                  String sql = "select * from LoginTable where LoginId='"+loginId+"'";  

7.                  System.out.println("logid:"+loginId);  

8.                  try {  

9.                      // 获取PreparedStatement对象  

10.                    this.ps = this.cn.prepareStatement(sql);  

11.                    // 对用户对象属性赋值  

12.                   // ps.setString(1, loginId);  

13.                    // 执行查询获取结果集  

14.                    rs = this.ps.executeQuery();  

15.                    // 判断结果集是否有效  

16.                   // System.out.println("rs.next()= "+rs.next());  

17.                    if(false == rs.next()){  

18.                        // 如果无效则证明此用户名可用  

19.                        System.out.println("用户名可用");  

20.                        return true;  

21.                    }  

22.                    // 释放此 ResultSet 对象的数据库和 JDBC 资源  

23.                    rs.close();  

24.                    // 释放此 PreparedStatement 对象的数据库和 JDBC 资源  

25.                    ps.close();  

26.                } catch (SQLException e) {  

27.                    e.printStackTrace();  

28.                }finally{  

29.                    // 关闭数据库连接  

30.                    this.dao.closeConnection(cn);  

31.                }  

32.                System.out.println("用户名不可用");  

33.                return false;  

34.            }  



由此就可以实现注册的时候,校验注册用户名是否已经存在的功能了。 
JSP页面代码: 

Html代码  

1.   action="register.do?action=add" onsubmit="return submessage(this)" method="post" name="form1">  

2.           border="1" width="500" cellspacing="1" cellpadding="3" align="left" bordercolor="#326598" >  

3.                

4.                   colspan="7" bgcolor="#FEA817">  

5.                      [align=center]  

6.                           color="#FFFFFF">用户注册   

7.                      [/align]  

8.                    

9.                

10.               

11.                   

12.                     用户名  

13.                   

14.                   

15.                      name="uname" id="username" type="text" class="form_text" size="20" onblur="validatorloginName()">        

16.                   

17.               

18.               

19.               

20.                   

21.                     登陆密码  

22.                   

23.                   

24.                      type="password" name="upwd">  

25.                   

26.               

27.               

28.                   

29.                     确认密码  

30.                   

31.                   

32.                      type="password" name="upwd1">  

33.                   

34.               

35.               

36.                  colspan="2" align="center">  

37.                      type="submit" value="提交">  

38.                      type="reset" value="重置">  

39.                   

40.               

41.           

42.                   


页面上添加的ajax组件: 

Html代码  

1.  function validatorloginName(){  

2.           var loginName=document.getElementById("uname").value;  

3.           if(loginName == "")  

4.           {  

5.              alert("用户名不能为空!");  

6.              return;  

7.           }  

8.           $.ajax({  

9.                  type: "POST",      

10.                  url: "ValidateName",      

11.                   data: "loginName="+loginName,   

12.                  success: function(data){  

13.                 if(data=="true"){     

14.                  alert("恭喜您!用户名没有被使用!");    

15.                  

16.                 }else{     

17.                  alert("抱歉!用户名已存在!");     

18.                 }   

19.                 }            

20.                 });     

21.         }         


通过ajax将注册用户名发送到ValidateName.do进行校验。 

web.xml里面配置如下: 

Xml代码  

1.    

2.      This is the description of my J2EE component  

3.      This is the display name of my J2EE component  

4.      ValidateName  

5.      com.wuliu.test.ValidateName  

6.      

7.    

8.      

9.      ValidateName  

10.     /ValidateName  

11.     

ValidateName.java代码如下所示,并且采用userIsExist查找数据库看是否存在相同的用户名。 

Java代码  

1.  package com.wuliu.test;  

2.  import java.io.IOException;  

3.  import java.io.PrintWriter;  

4.    

5.  import javax.servlet.ServletException;  

6.  import javax.servlet.http.HttpServlet;  

7.  import javax.servlet.http.HttpServletRequest;  

8.  import javax.servlet.http.HttpServletResponse;  

9.  import com.wuliu.dao.LoginDAO;  

10.   

11. public class ValidateName extends HttpServlet {  

12.     public ValidateName(){  

13.         super();  

14.     }  

15.   

16.     public void doGet(HttpServletRequest request, HttpServletResponse response)  

17.             throws ServletException, IOException {  

18.   

19.         response.setContentType("text/html");  

20.         LoginDAO dao = new LoginDAO();  

21.         boolean flag = false;  

22.         String loginName=request.getParameter("loginName").toString();  

23.         flag = dao.userIsExist(loginName);  

24.         if(true == flag)  

25.         {  

26.             response.getWriter().write("true");//此值jquery可以接收到    

27.         }  

28.     }  

29.   

30.       

31.     public void doPost(HttpServletRequest request, HttpServletResponse response)  

32.             throws ServletException, IOException {  

33.   

34.         this.doGet(request, response);   

35.           

36.     }  

37.   

38. }  



Java代码  

1.  public boolean userIsExist(String loginId){  

2.                  System.out.println("Enter userIsExist");  

3.                  this.dao = new DBConnection();  

4.                  this.cn = this.dao.getConnection();  

5.                  // 根据指定用户名查询用户信息  

6.                  String sql = "select * from LoginTable where LoginId='"+loginId+"'";  

7.                  System.out.println("logid:"+loginId);  

8.                  try {  

9.                      // 获取PreparedStatement对象  

10.                     this.ps = this.cn.prepareStatement(sql);  

11.                     // 对用户对象属性赋值  

12.                    // ps.setString(1, loginId);  

13.                     // 执行查询获取结果集  

14.                     rs = this.ps.executeQuery();  

15.                     // 判断结果集是否有效  

16.                    // System.out.println("rs.next()= "+rs.next());  

17.                     if(false == rs.next()){  

18.                         // 如果无效则证明此用户名可用  

19.                         System.out.println("用户名可用");  

20.                         return true;  

21.                     }  

22.                     // 释放此 ResultSet 对象的数据库和 JDBC 资源  

23.                     rs.close();  

24.                     // 释放此 PreparedStatement 对象的数据库和 JDBC 资源  

25.                     ps.close();  

26.                 } catch (SQLException e) {  

27.                     e.printStackTrace();  

28.                 }finally{  

29.                     // 关闭数据库连接  

30.                     this.dao.closeConnection(cn);  

31.                 }  

32.                 System.out.println("用户名不可用");  

33.                 return false;  

34.             }  



由此就可以实现注册的时候,校验注册用户名是否已经存在的功能了。 


你可能感兴趣的:(javaEE)