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

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

Java代码

1. packagecom.wuliu.test;

2. importjava.io.IOException;

3. importjava.io.PrintWriter;

4.

5. importjavax.servlet.servletexception;

6. importjavax.servlet.http.HttpServlet;

7. importjavax.servlet.http.HttpServletRequest;

8. importjavax.servlet.http.HttpServletResponse;

9. importcom.wuliu.dao.LoginDAO;

10.

11.publicclassValidateNameextendsHttpServlet{

12.publicValidateName(){

13.super();

14.}

15.

16.publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

17.throwsservletexception,IOException{

18.

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

20.LoginDAOdao=newLoginDAO();

21.booleanflag=false;

22.StringloginName=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.publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

32.throwsservletexception,IOException{

33.

34.this.doGet(request,response);

35.

36.}

37.

38.}

Java代码

1. publicbooleanuserIsExist(StringloginId){

2. System.out.println("EnteruserIsExist");

3. this.dao=newDBConnection();

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

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

6. Stringsql="select*fromLoginTablewhereLoginId='"+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.returntrue;

21.}

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

23.rs.close();

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

25.ps.close();

26.}catch(sqlExceptione){

27.e.printstacktrace();

28.}finally{

29.//关闭数据库连接

30.this.dao.closeConnection(cn);

31.}

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

33.returnfalse;

34.}



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

HTML代码

1. <formaction="register.do?action=add"onsubmit="returnsubmessage(this)"method="post"name="form1">

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

3. <tr>

4. <tdcolspan="7"bgcolor="#FEA817">

5. [align=center]

6. <fontcolor="#FFFFFF"><b>用户注册</b></font>

7. [/align]

8. </td>

9. </tr>

10. <tr>

11. <td>

12. 用户名

13. </td>

14. <td>

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

16. </td>

17. </tr>

18.

19. <tr>

20. <td>

21. 登陆密码

22. </td>

23. <td>

24. <inputtype="password"name="upwd">

25. </td>

26. </tr>

27. <tr>

28. <td>

29. 确认密码

30. </td>

31. <td>

32. <inputtype="password"name="upwd1">

33. </td>

34. </tr>

35. <tr>

36. <tdcolspan="2"align="center">

37. <inputtype="submit"value="提交">

38. <inputtype="reset"value="重置">

39. </td>

40. </tr>

41. </table>

42. </form>


页面添加的ajax组件:

HTML代码

1. functionvalidatorloginName(){

2. varloginName=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. <servlet>

2. <description>ThisisthedescriptionofmyJ2EEcomponent</description>

3. <display-name>ThisisthedisplaynameofmyJ2EEcomponent</display-name>

4. <servlet-name>ValidateName</servlet-name>

5. <servlet-class>com.wuliu.test.ValidateName</servlet-class>

6. </servlet>

7.

8. <servlet-mapping>

9. <servlet-name>ValidateName</servlet-name>

10. <url-pattern>/ValidateName</url-pattern>

11. </servlet-mapping>

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

Java代码

1. packagecom.wuliu.test;

2. importjava.io.IOException;

3. importjava.io.PrintWriter;

4.

5. importjavax.servlet.servletexception;

6. importjavax.servlet.http.HttpServlet;

7. importjavax.servlet.http.HttpServletRequest;

8. importjavax.servlet.http.HttpServletResponse;

9. importcom.wuliu.dao.LoginDAO;

10.

11. publicclassValidateNameextendsHttpServlet{

12. publicValidateName(){

13. super();

14. }

15.

16. publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

17. throwsservletexception,IOException{

18.

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

20. LoginDAOdao=newLoginDAO();

21. booleanflag=false;

22. StringloginName=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. publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

32. throwsservletexception,IOException{

33.

34. this.doGet(request,response);

35.

36. }

37.

38. }



Java代码

1. publicbooleanuserIsExist(StringloginId){

2. System.out.println("EnteruserIsExist");

3. this.dao=newDBConnection();

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

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

6. Stringsql="select*fromLoginTablewhereLoginId='"+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. returntrue;

21. }

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

23. rs.close();

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

25. ps.close();

26. }catch(sqlExceptione){

27. e.printstacktrace();

28. }finally{

29. //关闭数据库连接

30. this.dao.closeConnection(cn);

31. }

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

33. returnfalse;

34. }

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

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...