当前位置: 代码迷 >> Ajax >> 很奇怪的有关问题,跪求大神解决
  详细解决方案

很奇怪的有关问题,跪求大神解决

热度:176   发布时间:2012-07-29 15:26:14.0
很奇怪的问题,跪求大神解决
我用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>
 
  相关解决方案