源代码:http://yuncode.net/code/c_50568c9a1baf841

 

jsp ajax 验证用户名是否存在 - 云代码 www.yuncode.net
2012-09-17     收藏(1) | 举报 作者:神马[jsp]代码
 

 

  1. jsp前台 input.jsp  
  2.  
  3. view sourceprint?001 <%@ page contentType="text/html; charset=GBK" %>    
  4.  
  5. 002 <html>    
  6.  
  7. 003 <style type="text/css">    
  8.  
  9. 004 <!--    
  10.  
  11. 005 @import url("../aqgc/style_c.css");    
  12.  
  13. 006 -->    
  14.  
  15. 007 </style>    
  16.  
  17. 008 <head>    
  18.  
  19. 009 <title>Ajax实例</title>    
  20.  
  21. 010 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">    
  22.  
  23. 011 <style type="text/css">    
  24.  
  25. 012 <!--    
  26.  
  27. 013 .style1 {    
  28.  
  29. 014     color: #FF3333;    
  30.  
  31. 015     font-weight: bold;    
  32.  
  33. 016 }    
  34.  
  35. 017 .style14 {    
  36.  
  37. 018     font-size: 13px    
  38.  
  39. 019 }    
  40.  
  41. 020 .text12black {    
  42.  
  43. 021     font-size: 12px;    
  44.  
  45. 022 }    
  46.  
  47. 023 -->    
  48.  
  49. 024 </style>    
  50.  
  51. 025 </head>    
  52.  
  53. 026 <body bottomMargin="0" leftMargin="0" topMargin="0" rightMargin="0"   
  54.  
  55. 027     marginheight="0" marginwidth="0">    
  56.  
  57. 028 <center>    
  58.  
  59. 029 <table width="748" border="0" align="center" cellpadding="0"   
  60.  
  61. 030     cellspacing="0">    
  62.  
  63. 031   <tr>    
  64.  
  65. 032     <td height="5"></td>    
  66.  
  67. 033   </tr>    
  68.  
  69. 034 </table>    
  70.  
  71. 035 <script language="javascript">     
  72.  
  73. 036   //创建XMLHttpRequest对象     
  74.  
  75. 037 function GetO()     
  76.  
  77. 038 {     
  78.  
  79. 039   var ajax=false;     
  80.  
  81. 040    try    
  82.  
  83. 041    {     
  84.  
  85. 042     ajax = new ActiveXObject("Msxml2.XMLHTTP");     
  86.  
  87. 043    }     
  88.  
  89. 044    catch (e)     
  90.  
  91. 045    {     
  92.  
  93. 046      try    
  94.  
  95. 047      {     
  96.  
  97. 048       ajax = new ActiveXObject("Microsoft.XMLHTTP");     
  98.  
  99. 049      }     
  100.  
  101. 050      catch (E)     
  102.  
  103. 051      {     
  104.  
  105. 052       ajax = false;     
  106.  
  107. 053      }     
  108.  
  109. 054    }     
  110.  
  111. 055    if (!ajax && typeof XMLHttpRequest!='undefined')     
  112.  
  113. 056    {     
  114.  
  115. 057     ajax = new XMLHttpRequest();     
  116.  
  117. 058    }     
  118.  
  119. 059    return ajax;     
  120.  
  121. 060 }     
  122.  
  123. 061      
  124.  
  125. 062 function getMyHTML(serverPage, objID) {     
  126.  
  127. 063   var ajax = GetO();     
  128.  
  129. 064    //得到了一个html元素,在下面给这个元素的属性赋值     
  130.  
  131. 065 var obj = document.all[objID];     
  132.  
  133. 066    //设置请求方法及目标,并且设置为异步提交     
  134.  
  135. 067 ajax.open("post", serverPage, true);     
  136.  
  137. 068 ajax.onreadystatechange = function()     
  138.  
  139. 069 {     
  140.  
  141. 070    if (ajax.readyState == 4 && ajax.status == 200)     
  142.  
  143. 071    {    //ajax.responseText是服务器的返回值,把值赋给id=passport1的元素的属性     
  144.  
  145. 072    //innerHTML这个属性或说这个变量表示一组开始标记和结束标记之间的内容     
  146.  
  147. 073     obj.innerHTML = ajax.responseText;     
  148.  
  149. 074    }     
  150.  
  151. 075   }     
  152.  
  153. 076    //发送请求     
  154.  
  155. 077 ajax.send(null);     
  156.  
  157. 078   }     
  158.  
  159. 079   function CheckGroupName()     
  160.  
  161. 080   {     
  162.  
  163. 081      getMyHTML("http://13.1.1.51:8080/ajax/check.jsp?groupName="+name_form.group_name.value, "passport1");     
  164.  
  165. 082   }     
  166.  
  167. 083   //这个函数的作用是当用户的焦点从其他地方回到group_name这个输入框时再给属性赋回原内容     
  168.  
  169. 084 function sl(tx)     
  170.  
  171. 085   {     
  172.  
  173. 086    if(tx=='passport1')     
  174.  
  175. 087   {     
  176.  
  177. 088      document.all[tx].innerHTML = "<div class='explain_blue' align='left'>4-20 个字符 (包括大小写字母,中文,数字,特殊字符等) 1个汉字等于2个字符,建议使用中文。注册后不可修改。</div>";     
  178.  
  179. 089     }     
  180.  
  181. 090   }     
  182.  
  183. 091 function check()     
  184.  
  185. 092 {     
  186.  
  187. 093    if(document.name_form.group_name.value.length<1)     
  188.  
  189. 094    {     
  190.  
  191. 095     alert("请您给您的群组取个名字!");     
  192.  
  193. 096      document.name_form.group_name.focus();     
  194.  
  195. 097      return false;     
  196.  
  197. 098     }     
  198.  
  199. 099   if(!OK())     
  200.  
  201. 100   {     
  202.  
  203. 101     return false;     
  204.  
  205. 102    }     
  206.  
  207. 103   document.name_form.action='addgroup.do';     
  208.  
  209. 104    document.name_form.target='_parent';     
  210.  
  211. 105    document.name_form.submit();     
  212.  
  213. 106   }     
  214.  
  215. 107   function OK()     
  216.  
  217. 108   {     
  218.  
  219. 109    var obj = document.getElementById("passport1");     
  220.  
  221. 110    if(obj.innerHTML.indexOf("可用")==-1)     
  222.  
  223. 111    {     
  224.  
  225. 112     return false;     
  226.  
  227. 113     }     
  228.  
  229. 114     return true;     
  230.  
  231. 115   }     
  232.  
  233. 116 </script>    
  234.  
  235. 117 <form name="name_form" method=post>    
  236.  
  237. 118   <td height="200" valign="top"><table width="100%" height="270" border="1" bordercolor="#96D6E8"   
  238.  
  239. 119     class="text12black">    
  240.  
  241. 120       <tr>    
  242.  
  243. 121         <td width="22%" height="20" align="right">用户名:</td>    
  244.  
  245. 122         <td width="61%" align="left"><INPUT name="group_name" type="text"   
  246.  
  247. 123             value="" size=30 maxlength="50" onBlur="javaScript:CheckGroupName();"   
  248.  
  249. 124             onFocus="return sl('passport1');" /></td>    
  250.  
  251. 125         <td id="passport1" valign="top"><div class="explain_blue" align='left'><span class="gray">4-20    
  252.  
  253. 126             个字符 (包括大小写字母,中文,数字,特殊字符等) 1个汉字等于2个字符。</span></div></td>    
  254.  
  255. 127       </tr>    
  256.  
  257. 128     </table></td>    
  258.  
  259. 129 </form>    
  260.  
  261. 130 </BODY>    
  262.  
  263. 131 </html>   
  264.  
  265.  
  266.  
  267. jsp后台处理  check.jsp  
  268.  
  269. view sourceprint?01 <%@ page contentType="text/html; charset=GB2312"%>    
  270.  
  271. 02 <%@ page import="java.io.*"%>    
  272.  
  273. 03 <%@ page import="java.sql.*"%>    
  274.  
  275. 04 <%@ page import="javax.sql.DataSource"%>    
  276.  
  277. 05 <%@ page import="javax.naming.InitialContext"%>    
  278.  
  279. 06 <%@ page import="java.util.Properties"%>    
  280.  
  281. 07 <%@ page import="java.util.Hashtable"%>    
  282.  
  283. 08 <%@ page import="thtf.website.admin.CommonBean"%>    
  284.  
  285. 09 <%     
  286.  
  287. 10  String action = "";    
  288.  
  289. 11         String groupname = "";    
  290.  
  291. 12         // 检查用户名    
  292.  
  293. 13      
  294.  
  295. 14         // 用作数据库联接,可以根据你的情况修改,如果为测试可以不用*作记号的语句    
  296.  
  297. 15         InitialContext ctx = null;    
  298.  
  299. 16         DataSource ds = null;    
  300.  
  301. 17         Connection conn = null;    
  302.  
  303. 18         Statement stmt = null;    
  304.  
  305. 19         ResultSet rs = null;    
  306.  
  307. 20      
  308.  
  309. 21         try {    
  310.  
  311. 22      
  312.  
  313. 23             action = request.getParameter("action");    
  314.  
  315. 24             groupname = request.getParameter("groupName").trim();    
  316.  
  317. 25             if ("".equals(groupname)) {    
  318.  
  319. 26                 System.out.println("null");    
  320.  
  321. 27                 out.println("<div class='explain_blue' align='left'>用户名不能为空!</div>");    
  322.  
  323. 28             } else if (groupname.length() < 4 || groupname.length() > 20) {    
  324.  
  325. 29                 out.println("<div class='explain_blue' align='left'>用户名"   
  326.  
  327. 30                         + groupname + "不合法!(长度为4到20位,且不能使用?#=等特殊字符)</div>");    
  328.  
  329. 31             } else {    
  330.  
  331. 32      
  332.  
  333. 33                 ctx = new InitialContext();    
  334.  
  335. 34                 ds = (DataSource) ctx.lookup("java:/student");    
  336.  
  337. 35                 conn = ds.getConnection();    
  338.  
  339. 36                 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,    
  340.  
  341. 37                         ResultSet.CONCUR_READ_ONLY);    
  342.  
  343. 38                 String strsql = "select userinfo_name from personal_userinfo where userinfo_name='"   
  344.  
  345. 39                         + groupname + "'";    
  346.  
  347. 40                 rs = stmt.executeQuery(strsql);    
  348.  
  349. 41                 if (rs.next()) {    
  350.  
  351. 42                     out.println("<div class='explain_blue' align='left'>用户名"   
  352.  
  353. 43                             + groupname + "已被占用,请重新输入!</div>");    
  354.  
  355. 44                 } else {    
  356.  
  357. 45                     out.println("您的用户名可用");    
  358.  
  359. 46                 }    
  360.  
  361. 47             }    
  362.  
  363. 48      
  364.  
  365. 49         } catch (Exception e) {    
  366.  
  367. 50             System.out.println(request.getServletPath() + " error : "   
  368.  
  369. 51                     + e.getMessage());    
  370.  
  371. 52         } finally {    
  372.  
  373. 53             if (rs != null)    
  374.  
  375. 54                 rs.close();    
  376.  
  377. 55             if (stmt != null)    
  378.  
  379. 56                 stmt.close();    
  380.  
  381. 57             if (conn != null)    
  382.  
  383. 58                 conn.close();    
  384.  
  385. 59         }    
  386.  
  387. 60 %>   
  388.