Ajax+Jsp+Access实现的唯一性校验例子

来源:互联网 发布:美漫 安卓 知乎 编辑:程序博客网 时间:2024/05/19 09:51

如标题,Ajax+Jsp+Access实现的唯一性校验例子,这里主要说明的是Ajax的原理,为了使得大家把例子下载下来就能运行,所以使用Access数据库,而且不需要配置数据源头,使用Tomcat发布就可以啦!
主要代码如下:
check.js:

 

代码
  1. /**  
  2.  * @author fuhao  
  3.  */  
  4.   
  5. var http_request = false ;   
  6. // 向服务器发起XMLHTTP请求   
  7. function send_request(){   
  8.     // 获得文本框里面输入的用户名   
  9.     var loginname=document.getElementById("userName").value;   
  10.     // 要请求的服务器地址   
  11.     url="check.jsp?userName="+loginname;   
  12.     http_request = false ;   
  13.     // 开始初始化XMLHttpRequest对象   
  14.     if(window.XMLHttpRequest){ // 说明是Mozila浏览器   
  15.         http_request = new XMLHttpRequest();   
  16.         if(http_request.ovverideMimeType){ // 设置MiME类别   
  17.             http_request.ovverideMimeType('text/xml');   
  18.         }   
  19.     }   
  20.     else if(window.ActiveXObject){ //说明是IE浏览器   
  21.         try{   
  22.             http_request = new ActiveXObject("Msxml2.XMLHTTP");   
  23.         }catch(e){   
  24.             try{   
  25.                 http_request = new ActiveXObject("Microsoft.XMLHTTP");   
  26.             }catch(e){}   
  27.         }   
  28.     }   
  29.     if(!http_request){ // 异常,创建对象实例失败   
  30.         alert("创建XMLHttpRequest对象失败");   
  31.         return false ;   
  32.     }   
  33.     http_request.onreadystatechange = callback ;   
  34.     // 确定发送请求的方式和URL   
  35.     http_request.open("GET",url,true);   
  36.     http_request.send(null);   
  37. }   
  38. // 处理返回信息的函数   
  39. function callback(){   
  40.     if(http_request.readystate == 4){ // 判断对象状态   
  41.         if(http_request.status == 200 ){ // 说明信息已经成功的返回   
  42.             displays();   
  43.         }else{   
  44.             alert("从服务器返回的状态是:"+http_request.statusText);      
  45.         }   
  46.     }else{   
  47.         document.getElementById("div").style.display = "";   
  48.     }   
  49. }   
  50. function displays(){   
  51.     var div = document.getElementById("div");   
  52.     div.innerHTML = http_request.responseText ;    
  53.        
  54. }   
  55. function docheck(){   
  56.     var loginname=document.getElementById("userName").value;   
  57.     document.getElementById("div").style.display = "none";   
  58.     if(loginname==""){ // 判断文本框是否为空   
  59.         document.getElementById("div").style.display = "none";   
  60.         return false;   
  61.     }else{   
  62.         document.getElementById("div").style.display = "";   
  63.         // 为了观察效果,设置延迟   
  64.         setTimeout(send_request,3000);     
  65.     }   
  66. }   

服务器端代码,check.jsp:
代码
  1. <%@ page language="java" contentType="text/html; charset=GBK"  
  2.     pageEncoding="GBK" import="java.sql.*" %>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=GBK">  
  7. <title>Insert title here</title>  
  8. </head>  
  9. <body>  
  10. <%   
  11. // 获得客户端传来的用户名   
  12. String userName = request.getParameter("userName");   
  13. System.out.println("useName:"+userName);   
  14. // 获得Access数据库的绝对路径   
  15. String realpath = "data/database.mdb";   
  16. // 获得Access数据库的相对路径   
  17. String dbpath = application.getRealPath(realpath);   
  18. // 设置数据库连接的字符串   
  19. String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath;   
  20. // 加载驱动程序   
  21. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   
  22. // 建立数据库连接   
  23. Connection conn=DriverManager.getConnection(url);   
  24. // 创建语句对象   
  25. Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);   
  26. String sql="";   
  27. // 创建查询数据库的SQL语句   
  28. sql="select * from user where user_Name='" +userName+ "'";   
  29. System.out.println("sql:"+sql);   
  30. // 得到数据集   
  31. ResultSet rs = stmt.executeQuery(sql);   
  32. if(rs.next()){   
  33.     out.println("对不起,该用户名已经被注册了");     
  34. }else{   
  35.     out.println("恭喜你,该用户名可以注册");       
  36. }   
  37. // 关闭数据库连接   
  38. rs.close();   
  39. stmt.close();   
  40. conn.close();   
  41. %>  
  42. </body>  
  43. </html>  

客户端代码,index.html:
代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=GBK">  
  5. <title>测试校验</title>  
  6. <LINK media=all href="css/style.css" type=text/css rel=stylesheet>  
  7. <script type="text/javascript" src="js/check.js" ></script>  
  8. </head>  
  9. <body>  
  10. <form action="" method="" >  
  11. <br /><br /><br /><p align="center"><font color="green" size="4">Ajax+Jsp+Access 唯一性校验例子</font></p>  
  12. <table align='center' border='1' bordercolor='#8CB3E3' width="55%" cellpadding='0' cellspacing='0'>  
  13.     <tbody id="tbodyid">  
  14.         <tr>  
  15.             <td nowrap class="data_tab_tdr" width="10%">用户名:</td>     
  16.             <td class="data_tab_tdl" width="15%">  
  17.                 <input type="text" name="userName" size="25" id="userName" onchange="docheck()" />  
  18.             </td>  
  19.             <td class="data_tab_tdl" width="15%"><div id="div" style="display:none"><img src="images/ajax-loader.gif"></div></td>  
  20.         </tr>  
  21.     </tbody>  
  22. </table>  
  23. </form>  
  24. </body>  
  25. </html>  

 

ajaxCheck.zip  描述:  全部代码,使用Tomcat5.0+IE浏览器发布即可
下载  文件名:  ajaxCheck.zip  文件大小:  26 KB  下载过的:  文件被下载或查看 6 次