/**
HandleRegister.java
 *
 *
 * @author 
 * @version 1.00 2012/6/16
 */package myservlet.control;
import java.sql.*;
import mybean.data.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;public class HandleRegister extends HttpServlet {   public void init(ServletConfig config)throws ServletException
   {super.init(config);
   try{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   
   }
   catch(Exception e){
   
   }
   }
   public String handleString(String s){
    try{byte bb[]=s.getBytes("iso-8859-1");
    s=new String(bb);
    }
    catch(Exception ee){}
    return s;
    }
   public  void doPost(HttpServletRequest request,HttpServletResponse response)throws  ServletException,IOException
   {Connection con;
   String sql="";
   Register reg=new Register();
   request.setAttribute("register",reg);
   String username=request.getParameter("username"),
   password1=request.getParameter("password1"),
   email=request.getParameter("email"),
   sex=request.getParameter("sex");
   
   String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=qinziyou";
   boolean isLD=true;
   for(int i=0;i<username.length();i++)
   {char c=username.charAt(i);
   if(!((c<='z'&&c>='a')||(c<='Z'&&c>='A')||(c<='9'&&c>='0')))
    isLD=false;
   }
   String backNews="";
   
   
   boolean success=true;
   try{con=DriverManager.getConnection(uri,"sa","sa");
   Statement statement=con.createStatement();
  sql="SELECT * FROM Users WHERE username='"+username+"'";
   ResultSet rs=statement.executeQuery(sql);
   if(rs.next())
  {backNews="该用户名已经存在,请更换用户名!";
  reg.setBackNews(backNews);
 success=false;
 
 }
   else {
   sql="INSERT INTO Users(username,password,email,sex) VALUES('"+username+"','"+password1+"','"+email+"','"+sex+"')";
   statement.executeUpdate(sql);
   backNews="注册成功!";
    reg.setBackNews(backNews);
    reg.setUsername(username);
    reg.setPassword(handleString(password1));
    reg.setEmail(handleString(email));}
   
  con.close();
   
   }
    catch(SQLException exp)
    {backNews="HAHA该用户名已使用!";
    reg.setBackNews(backNews);
    success=false;
   
    }
   
    if(success)
    {RequestDispatcher  dispatcher=request.getRequestDispatcher("showRegisterMess2.jsp");
   dispatcher.forward(request,response);}
   else{ RequestDispatcher  dispatcher=request.getRequestDispatcher("showRegisterMess1.jsp");
   dispatcher.forward(request,response);}
    }
   
   
   
   public void doGet(HttpServletRequest request,HttpServletResponse response)throws  ServletException,IOException
   {doPost(request,response);
   }
   }
   
   /**
Register.java
 *
 *
 * @author 
 * @version 1.00 2012/6/16
 */
package mybean.data;public class Register {    String username="",password="",email="";
    String backNews;
    public void setUsername(String name)
    {username=name;
    }
     public String getUsername()
{return username;
}    
public void setPassword(String pw )
{password=pw;
}
public String getPassword()
{return password;
}
public void setEmail(String em)
{email=em;
}
public String getEmail()
{return email;}
public String getBackNews()
{return backNews;
}
public void setBackNews(String s)
{backNews=s;
}
}
   
我为什么总是插不进数据  呀   总是执行catch里面的语句呀

解决方案 »

  1.   

    sql="SELECT * FROM Users WHERE username='"+username+"'";这里不用加单引号
    或者:
    sql="SELECT * FROM Users WHERE username=?"
    statement.setString(0,username);
      

  2.   

    出的结果就是catch语句里面的HAHA该用户名已使用!";
    语句,而不是try里面的
      

  3.   

    sql="INSERT INTO Users(username,password,email,sex) VALUES('"+username+"','"+password1+"','"+email+"','"+sex+"')";这里也不需要加引号报错信息啊....
      

  4.   

    没有什么报错信息  就是执行catch语句   不执行try语句
      

  5.   

    没有什么报错信息  就是执行catch里面的语句呀
      

  6.   

    exp.printStackTrace();加上,看看打印的异常
      

  7.   

    你不知道有个叫控制台的东东吧?Console
      

  8.   

    编译器左下角有个小图标,点出来,再点Console