刚学J2EE有很多问题不明白,最近做了一个页面向数据库添加用户,总是不成功。希望高手指点。
JSP页面:
<%@ page language="java" import="java.util.*" errorPage="err.jsp" contentType="text/html;charset=gb2312"%>
<html>
  <head>
    <title>添加新用户</title>
    <SCRIPT Language="JavaScript">
function test1()

  if(document.add1.userid.value ==  '')
     {
       alert( 'ID不能为空!');
       return   false;
     }
   if(document.add1.username.value == '')
     {
        alert('姓名不能为空!');
        return   false;
     }
   if(document.add1.password.value == '')
     {
        alert('密码不能为空!');
        return   false;
     }  
    return   true;
}
</SCRIPT>
    
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head> 
  <body>
    <center><h1>添加新用户</h1>
  <form id="add1" name="add1" method="post" action="AddServlet"onsubmit="return test1()";>
  <table width="703" border="0" cellpadding="0">
      <tr>
        <td width="75">ID</td>
        <td width="182"><input type="text" name="userid" /></td>
      </tr>
      <tr>
        <td>姓名</td>
        <td><input type="text" name="username" /></td>
      </tr>
      <tr>
        <td>密码</td>
        <td><input type="text" name="password" /></td>
      </tr>
      <tr>
        <td>备注</td>
        <td><input type="text" name="meno" /></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="Submit" value="提交"  />
        &nbsp;&nbsp;
        <input type="reset" name="Submit2" value="重置" /></td>
      </tr>
    </table>
  </form>
</center>
</body>
</html>

解决方案 »

  1.   

    我的Servlet:
    package uinfo;import java.io.IOException;import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import java.sql.*;public class QueryServlet extends HttpServlet { String errMsg;
    public void service (HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { RequestDispatcher rd;

    String username = request.getParameter("username");

    try
    {
    MySQLBean bean1 = new MySQLBean();
    ResultSet rs = bean1.query("select * from userinfo where username = '" + username +"'");
    boolean flag = false ;
    UserInfoBean uib = new UserInfoBean();
    while (rs.next()){
    flag = true ;
        uib.setUserid(rs.getString(1));
        uib.setUsername(rs.getString(2));
        uib.setPassword(rs.getString(3));
        uib.setMeno(rs.getString(4));
        
    }
    if (flag){
    HttpSession  session = request.getSession(true);
    session.setAttribute("uib",uib);
    rd = request.getRequestDispatcher("/qresult.jsp");
    rd.forward(request,response);
    }
    else{
    rd = request.getRequestDispatcher("/qresult1.jsp");
    rd.forward(request,response);
    }

     }
    catch(Exception e)
    {
    rd = request.getRequestDispatcher("/err.jsp");
    request.setAttribute("exception","业务错误");
    rd.forward(request,response);
    }
    if (errMsg != null && !errMsg.equals(""))
    {
    rd = request.getRequestDispatcher("/query.jsp");
    request.setAttribute("err",errMsg);
    rd.forward(request,response);
    }
    }}
    其中的CheckUser类:
    package uinfo;import java.sql.ResultSet;public class CheckUser {
    public static boolean Checkuser(String id)
    throws  Exception{
    MySQLBean bean3 = new MySQLBean();
    ResultSet rs = bean3.query("select * from userinfo where userid = '" + id +"'");
    if (rs.next()) {
    return false;
    }
    else {
    return true;
    }
    }}
      

  2.   

    数据库的Bean:
    package uinfo;import java.sql.*;public class MySQLBean
    {

    private Connection conn;
    private String driver;
    private String url;
    private String username;
    private String pass;
    public  MySQLBean()
    throws Exception
    {
    this.driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    this.url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mysql";
    this.username = "sa";
    this.pass = "123";
    Class.forName(driver).newInstance();

    conn = DriverManager.getConnection(url,username,pass);
    }

    public String getDriver() {
    return driver;
    }
    public void setDriver(String driver) {
    this.driver = driver;
    }
    public String getPass() {
    return pass;
    }
    public void setPass(String pass) {
    this.pass = pass;
    }
    public String getUrl() {
    return url;
    }
    public void setUrl(String url) {
    this.url = url;
    }
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }


    public boolean insert(String sql)
    throws Exception
    {

    Statement stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    if (stmt.executeUpdate(sql) != 1)
    {
    return false;
    }
    return true;
    }
    public ResultSet query(String sql)
    throws Exception
    {

    Statement stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    return stmt.executeQuery(sql);
    }
    public void delete(String sql)
    throws Exception
    {

    Statement stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    stmt.executeUpdate(sql);
    }
    public void update(String sql)
    throws Exception
    {

    Statement stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    stmt.executeUpdate(sql);
    }


    }
      

  3.   

    报错:
    type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjava.lang.IllegalStateException: Cannot forward after response has been committed
    uinfo.AddServlet.service(AddServlet.java:54)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
      

  4.   

    if   (flag){ 
    HttpSession     session   =   request.getSession(true); 
    session.setAttribute("uib",uib); 
    rd   =   request.getRequestDispatcher("/qresult.jsp"); 
    rd.forward(request,response); 

    else{ 
    rd   =   request.getRequestDispatcher("/qresult1.jsp"); 
    rd.forward(request,response); 
    }   } 
    catch(Exception   e) 

    rd   =   request.getRequestDispatcher("/err.jsp"); 
    request.setAttribute("exception","业务错误"); 
    rd.forward(request,response); 

    if   (errMsg   !=   null   &&   !errMsg.equals("")) 

    rd   =   request.getRequestDispatcher("/query.jsp"); 
    request.setAttribute("err",errMsg); 
    rd.forward(request,response); 

    应该是在这里跳转路径出现的问题! 仔细看看你的跳转路径