我用Ajax尝试做实现表单数据验证
遇到的问题是能连接数据库,能查询数据库
但是当新用户注册成功时,数据库没有增加数据。
搞不懂为什么
下面是几个页面的代码
Conn.jsp
- Java code
<%! Connection con=null; Statement stmt=null; ResultSet rs=null; public void jspInit(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:"+"wl","sa","wl"); stmt=con.createStatement(); } catch(Exception ex){ System.out.println(ex.toString()); } } public void Exec(String sql){ jspInit(); try{ stmt.executeUpdate(sql); } catch(Exception e){ System.out.print(e.toString()); } } public ResultSet getRs(String sql) throws SQLException{ jspInit(); try{ rs=stmt.executeQuery(sql); return rs; } catch(Exception e){ System.out.print(e); return null; } } public String getS(String Str){ try{ byte b[]=Str.getBytes("ISO-8859-1"); Str=new String(b,"UTF-8"); } catch(Exception ee){ ee.printStackTrace(); } return Str; }
%>
zhuce1.jsp
- Java code
<%@ page contentType="text/html;charset=GB2312" import="java.sql.*" errorPage=""%> <%@ include file="Conn.jsp"%> <% String name=request.getParameter("name"); String password=request.getParameter("pass"); String mailname=request.getParameter("mailname"); name=getS(name); String sql="insert into [uesr-ajax](user_name,user_password,user_email) values ('name','password','mailname')"; try{ String sq="select * from [user-ajax] where user_name='"+name+"'"; ResultSet rs=getRs(sq); if(rs.next()){ out.print("2"); } else{ Exec(sql); out.print("1"); } } catch(Exception e){ out.print("0"); } %>
zhuce.jsp
- HTML code
<%@ page contentType="text/html;cahrset=GB2312" import="java.sql.*" errorPage=""%> <script type=text/javascript> function trim(str){ var t=str.replace(/(^\s*)|(\s*$)/g,""); //用正则表达式将前后空格用空字符串替代 return t.replace(/(^ *)|( *$)/g,""); } var xmlHttp; function createXMLHttpRequest(){ if(window.ActiveXObject){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest){ xmlHttp=new XMLHttpRequest(); } } function validate(){ createXMLHttpRequest(); var name=document.getElementById("username").value; var pass=document.getElementById("passname").value; var mailname=document.getElementById("mailname").value; var str="name="+name+"&pass="+pass+"&mailname="+mailname; var url="zhuce1.jsp"; xmlHttp.open("POST",url,true); xmlHttp.onreadystatechange=callback; xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlHttp.send(str); } function callback(){ if(xmlHttp.readyState==4){ var s=xmlHttp.responseText; if(trim(s)==1){ alert("用户注成功,即将转向首页"); clear(); } if(trim(s)==2){ var ta="<font color='red'>该名称在数据库中已存在,请重新输入</font>" document.getElementById("res").innerHTML=ta; document.getElementById("username").value=""; } } } function clear(){ document.getElementById("username").value=""; document.getElementById("passname").value=""; document.getElementById("passname2").value=""; document.getElementById("mailname").value=""; } function checkPassword(e){ var ok="1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_.-"; for(var i=0;i<e.length;i++){ if(ok.indexOf(e.charAt(i))<0){ return false; } } return true; } function checkEmail(e){ var ok="1234567890qwertyuiopasdfghjklzxcvbnm[].+@-_QWERTYUIOPASDFGHJKLZXCVBNM"; for(var i=0;i<e.length;i++){ if(ok.indexOf(e.charAt(i))<0){ return false; } } if(e.indexOf("@")<=0){ return false; } if(e.indexOf(".")<=0){ return false; } if(e.indexOf("@")>e.lastIndexOf(".")){ return false; } return true; } function validate_form(){ if(document.form1.username.value==""){ alert("昵称不能为空!"); return false; } if(bytelength(document.form1.username.value)<1||bytelength(document.form1.username.value)>20){ alert("您输入的昵称不合法!"); return false; } if(document.form1.passname.value==""){ alert("输入密码不能为空!"); return false; } if(checkPassword(document.form1.passname.value)==false){ alert("您输入的密码不合法!"); return false; } if(bytelength(document.form1.passname.value)<6||bytelength(document.form1.passname.value)>16){ alert("您输入的密码不合法!"); return false; } if(document.form1.passname.value!=document.form1.passname2.value){ alert("确认密码不一致!"); return false; } if(document.form1.mailname.value==""){ alert("电子邮件不能为空!"); return false; } if(checkEmail(trim(document.form1.mailname.value))==false){ alert("您输入的Email不合法!"); return false; } return true; } function bytelength(szString){ return szString.replace(new RegExp("[^\x00-\xff]","g")," ").length; } function reg(){ if(validate_form()==false) return; validate(); } </script> <h3 align=center>用户注册</h3> <table border="1" width="80%" align="center"> <form name="form1" method="post"> <tr> <td width="26%">昵称:</td> <td><input name="username" id="username"><div id="res"></div>允许输入汉字,长度为1-20个字符</td> </tr> <tr> <td>密码:</td> <td><input type="password" name="passname" id="passname">由数字、字母(区分大小写)、减号、 点或下划线组成,长度为6-16位</td> </tr> <tr> <td>确认密码:</td> <td><input type="password" name="passname2" id="passname2"></td> </tr> <tr> <td>E-mail地址</td> <td><input name="mailname" id='mailname' value="sohu@sohu.com"></td> </tr> <tr> <td><input type="button" value="提交" onclick="reg()"/></td> <td><input type="reset" value="重填"/></td> </tr> </form> </table> <div id="dispaly"></div>