微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

初学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的值提示用户可以注册

原文地址:https://www.jb51.cc/ajax/166026.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐