加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax简单注册用户验证(初学者)

发布时间:2020-12-16 00:57:19 所属栏目:百科 来源:网络整理
导读:初学Ajax,在网上找了半天的Ajax注册验证的资料,都是用户名已经写死了的验证。但自己的需求是查询数据库进行验证。为了简明直观,我只写了一个html页面,一个servlet,把Jdbc都写在里面了。先粘贴山Check.html代码 !DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Tra

初学Ajax,在网上找了半天的Ajax注册验证的资料,都是用户名已经写死了的验证。但自己的需求是查询数据库进行验证。为了简明直观,我只写了一个html页面,一个servlet,把Jdbc都写在里面了。先粘贴山Check.html代码

 
 
  1. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
  5. <title>Ajax测试</title>
  6. <scripttype="text/javascript">
  7. varXMLHttp;
  8. functionvalidataName(){
  9. varuname=document.getElementById("uname").value;
  10. varurl="Users.do?uname="+uname;
  11. if(window.ActiveXOBject){
  12. XMLHttp=newActiveXOject("Microsoft.XMLHTTP");
  13. }elseif(window.XMLHttpRequest){
  14. XMLHttp=newXMLHttpRequest();
  15. }
  16. XMLHttp.onreadystatechange=showT;
  17. XMLHttp.open("post",url,true);
  18. XMLHttp.send(null);
  19. }
  20. functionshowT(){
  21. if(XMLHttp.readyState==4){
  22. if(XMLHttp.status==200){
  23. varmessage=document.getElementById("message");
  24. varserverTime=parseInt(XMLHttp.responseText);
  25. if(serverTime==0){
  26. message.innerHTML="用户名已使用";
  27. }else{
  28. message.innerHTML="用户名可以使用";
  29. }
  30. }
  31. }
  32. }
  33. </script>
  34. </head>
  35. <body>
  36. 用户名:
  37. <inputtype="text"id="uname"name="uname"onkeyup="validataName()"/>
  38. <spanid="message"></span>
  39. </body>
  40. </html>
  41. 还有自己的servlet代码User.java:
  42. packageorg.hel.servlet;
  43. importjava.io.IOException;
  44. importjava.sql.Connection;
  45. importjava.sql.DriverManager;
  46. importjava.sql.PreparedStatement;
  47. importjava.sql.ResultSet;
  48. importjava.sql.SQLException;
  49. importjavax.servlet.ServletException;
  50. importjavax.servlet.http.HttpServlet;
  51. importjavax.servlet.http.HttpServletRequest;
  52. importjavax.servlet.http.HttpServletResponse;
  53. publicclassUsersextendsHttpServlet{
  54. publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
  55. throwsServletException,IOException{
  56. StringreturnValue="";
  57. Stringuname=request.getParameter("uname");
  58. try{
  59. Connectionconn=null;
  60. PreparedStatementps=null;
  61. ResultSetrs=null;
  62. Class.forName("oracle.jdbc.driver.OracleDriver");
  63. conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","hh","a123");
  64. Stringsql="select*fromstudentwheresName='"+uname+"'";
  65. ps=conn.prepareStatement(sql);
  66. rs=ps.executeQuery();
  67. if(rs.next()){
  68. returnValue="0";
  69. }else{
  70. returnValue="2";
  71. }
  72. response.getWriter().write(returnValue);
  73. }catch(ClassNotFoundExceptione){
  74. //TODOAuto-generatedcatchblock
  75. e.printStackTrace();
  76. }catch(SQLExceptione){
  77. //TODOAuto-generatedcatchblock
  78. e.printStackTrace();
  79. }
  80. }
  81. publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
  82. throwsServletException,IOException{
  83. doGet(request,response);
  84. }
  85. }

下面简单的说下这二段代码的意思。Check.html里<input>标签里的onkeyup="validataName()" onkeyup是一个事件:onkeyup 事件会在键盘按键被松开时发生。我自己的理解是当你在文本框中停止输入的时候就触发了这个函数。var uname 定义一个变量取文本框(id="uname")的值。var url = "Users.do?uname=" + uname;这句代码跟配置文件web.xml联系起来了,通过对应关系调用了User.java这个servlet,下面的XMLHttp.open("post",true);XMLHttp.send(null);就是方法的调用了,Message就是输出文本提示的。下面主要说下这个User.java,加载驱动,获得连接的就略过。String uname = request.getParameter("uname");String sql="select * from student where sName= '"+ uname+"'";先是将文本框中的值获取到,然后当做查询语句的条件的参数,再进行if(rs.next())判断,如果为真,说明文本框中的用户名在数据库的student表中;returnValue="0",message的值提示"该用户已存在"。如果为假,说明该用户名不在数据库student表中,message的值提示改用户可以注册。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读