这是出错信息:出错了!
发生了以下的错误: ----------------------------------------------------------------------------------------------------------------------------------------------------------------
getMessage():
null--------------------------------------------------------------------------------
getLocalizedMessage():
null--------------------------------------------------------------------------------
PrintStatckTrace():
java.lang.NullPointerException at graduate.ExecuteBean.addUser(ExecuteBean.java:60) at org.apache.jsp.AddUser_005fDo_jsp._jspService(org.apache.jsp.AddUser_005fDo_jsp:80) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) 

解决方案 »

  1.   

    空指针错误,先看看,数据库有没有连上,就是在java类中,直接调用
    public void addUser(UserBean user) throws Exception
    {
    PreparedStatement pstmt=conn.prepareStatement("insert into user (User_Name,User_Pwd) values(?,?)");
    pstmt.setString(1,user.getUserName());
    pstmt.setString(2,user.getUserPwd());
    pstmt.executeUpdate();
    }
    看看能不能成功
      

  2.   

    我用的是tomcat5.5.9,只不会有什么影响吧
      

  3.   

    可能是连上了,但是你可以用一个bean的main函数中,先构造user类,然后调用addUser看看,有没有问题,<jsp:setProperty name="user" property="*" />确保user类的user属性,和你前一页中的表单中的对应的对象名字一样
      

  4.   

    肯定是graduate.UserBean有错误,你的SET和GET都写全了吗?两个变量你初始化了吗?你看看,
      

  5.   

    我把代码贴全些~~~还是没找到
    JSP:AddUser.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="Error.jsp" %>
    <%@ page import="graduate.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="java.util.*" %><html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <script language="JavaScript">
    <!--
    function RgTest()

      if(document.AddUser.username.value=="")
        {
    alert("请输入您的用户名!");
    document.AddUser.username.focus();
    return false;
        }
        
        if(document.AddUser.userpwd.value=="")
        {
    alert("请输入您的密码!");
    document.AddUser.userpwd.focus();
    return false;
        }
        return true;
    }
    //-->
    </script>    
    <center>
    <h1>增加一个新的用户</h1>
    <form action="AddUser_Do.jsp" method="post" name="AddUser">
    <table border="1" bgcolor="#0099CC">
    <tr><td>用户名:<input type="text" name="username" ></td></tr>
    <tr><td>密码:<input type="pssword" name="userpwd" ></td></tr>
    <tr><td><input type=submit value=提交 onClick="return RgTest()"></td></tr>
    </table>
    </form>
    </center>
    </body>
    </html>AddUser_Do.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="Error.jsp" %>
    <%@ page import="graduate.*" %>
    <%@ page import="java.io.*" %><html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <jsp:useBean id="user" class="graduate.UserBean" scope="page">
    <jsp:setProperty name="user" property="*" />
    </jsp:useBean>
    <jsp:useBean id="execute" class="graduate.ExecuteBean" scope="page"/>
    <% 
    execute.addUser(user);
    %>
    <body>
    <center>
    <h1>增加用户成功</h1>
    </center>
    </body>
    </html>
      

  6.   

    BEAN:
    ExecuteBean.java
    /*
     * 创建日期 2005-5-19
     *
     * TODO 要更改此生成的文件的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    package graduate;import java.sql.*;
    import java.util.*;/**
     * @author jc
     *
     * TODO 要更改此生成的类型注释的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    //答题系统相关操作
    public class ExecuteBean
    {
    private Connection conn;

    //构造方法获得数据库连接
    public void ExecuteBean()
    {
    String ClassForName="sun.jdbc.odbc.JdbcOdbcDriver";
    String ServerDB="jdbc:odbc:graduate";
    String User="";
    String Password="";

    try
    {
    Class.forName(ClassForName);
    conn=DriverManager.getConnection(ServerDB,User,Password);
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }

    //查看用户
    public void ViewUser(String username) throws Exception
    {
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("select * from user where User_Name='"+username+"'");
    Vector vectoruser=new Vector();
    if(rs.next())
    {
    vectoruser.add(rs.getString("User_Id"));
    vectoruser.add(rs.getString("User_Name"));
    vectoruser.add(rs.getString("User_Pwd"));
    vectoruser.add(rs.getString("User_Score"));
    }
    }

    //添加用户
    public void addUser(UserBean user) throws Exception
    {
    PreparedStatement pstmt=conn.prepareStatement("insert into user (User_Name,User_Pwd) values(?,?)");
    pstmt.setString(1,user.getUserName());
    pstmt.setString(2,user.getUserPwd());
    pstmt.executeUpdate();
    }

    //修改用户
    public void modifyUser(UserBean user) throws Exception
    {
    PreparedStatement pstmt=conn.prepareStatement("update user set User_Name=?,User_Pwd=?");
    pstmt.setString(1,user.getUserName());
    pstmt.setString(2,user.getUserPwd());
    pstmt.executeUpdate();
    }

        //删除用户
    public void DeleteUser(String username) throws Exception
    {
    Statement stmt=conn.createStatement();
    stmt.execute("delete from user where User_Name='"+username+"'");
    }



    //查看管理员
    public void ViewAdmin(String adminname) throws Exception
    {
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("select * from admin where Admin_Name='"+adminname+"'");
    Vector vectoradmin=new Vector();
    if(rs.next())
    {
    vectoradmin.add(rs.getString("Admin_Id"));
    vectoradmin.add(rs.getString("Admin_Name"));
    vectoradmin.add(rs.getString("Admin_Pwd"));
    }
    }

    //添加管理员
    public void addAdmin(AdminBean admin) throws Exception
    {
    PreparedStatement pstmt=conn.prepareStatement("insert into admin (Admin_Name,Admin_Pwd) values(?,?)");
    pstmt.setString(1,admin.getAdminName());
    pstmt.setString(2,admin.getAdminPwd());
    pstmt.executeUpdate();
    }

    //修改管理员
    public void modifyAdmin(AdminBean admin) throws Exception
    {
    PreparedStatement pstmt=conn.prepareStatement("update admin set Admin_id=?,Admin_Name=?,Admin_Pwd=?");
    pstmt.setInt(1,admin.getAdminId());
    pstmt.setString(2,admin.getAdminName());
    pstmt.setString(3,admin.getAdminPwd());
    pstmt.executeUpdate();
    }

        //删除管理员
    public void DeleteAdmin(String adminname) throws Exception
    {
    Statement stmt=conn.createStatement();
    stmt.execute("delete from admin where Admin_Name='"+adminname+"'");
    }



    //查看题目
    public void ViewSubject(int subjectid) throws Exception
    {
    Statement stmt=conn.createStatement();
    ResultSet rs=stmt.executeQuery("select * from subject where Subject_Id='"+subjectid+"'");
    Vector vectorsubject=new Vector();
    if(rs.next())
    {
    vectorsubject.add(rs.getString("Subject_Type"));
    vectorsubject.add(rs.getString("Subject_Info"));
    vectorsubject.add(rs.getString("getSubject_A"));
    vectorsubject.add(rs.getString("getSubject_B"));
    vectorsubject.add(rs.getString("getSubject_C"));

    }


    //添加题目
    public void addSubject(SubjectBean subject) throws Exception
    {
    PreparedStatement pstmt=conn.prepareStatement("insert into subject (Subject_Type,Subject_Info,Subject_A,Subject_B,Subject_C,Subject_Answer) values(?,?,?,?,?,?)");
    pstmt.setString(2,subject.getSubjectType());
    pstmt.setString(3,subject.getSubjectInfo());
    pstmt.setString(4,subject.getSubjectA());
    pstmt.setString(5,subject.getSubjectB());
    pstmt.setString(6,subject.getSubjectC());
    pstmt.setString(7,subject.getSubjectAnswer());
    pstmt.executeUpdate();
    }


        //修改题目
    public void modifySubject(SubjectBean subject) throws Exception
    {
    PreparedStatement pstmt=conn.prepareStatement("update subject set Subject_Id=?,Subject_Type=?,Subject_Info=?,Subject_A=?,Subject_B=?,Subject_C=?,Subject_Answer=?");
    pstmt.setInt(1,subject.getSubjectId());
    pstmt.setString(2,subject.getSubjectType());
    pstmt.setString(3,subject.getSubjectInfo());
    pstmt.setString(4,subject.getSubjectA());
    pstmt.setString(5,subject.getSubjectB());
    pstmt.setString(6,subject.getSubjectC());
    pstmt.setString(7,subject.getSubjectAnswer());
    pstmt.executeUpdate();
    }


        //删除题目
    public void DeleteSubject(int subjectid) throws Exception
    {
    Statement stmt=conn.createStatement();
    stmt.execute("delete from subject where Subject_Id='"+subjectid+"'");
    }
    }
    UserBean.java
    /*
     * 创建日期 2005-5-19
     *
     * TODO 要更改此生成的文件的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    package graduate;/**
     * @author jc
     *
     * TODO 要更改此生成的类型注释的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    public class UserBean
    {
    //定义UserBean类的私有数据
    private int userid;
    private String username;
    private String userpwd;
    private int userscore;

    //UserBean属性设置方法
    public void setUserId(int userid)
    {
    this.userid=userid;
    }
    public void setUserName(String username)
    {
    this.username=username;
    }
    public void setUserPwd(String userpwd)
    {
    this.userpwd=userpwd;
    }
    public void setUserScore(int userscore)
    {
    this.userscore=userscore;
    }

    //UserBean属性读取方法
    public int getUserId()
    {
    return this.userid;
    }
    public String getUserName()
    {
    return this.username;
    }
    public String getUserPwd()
    {
    return this.userpwd;
    }
    public int getUserScore()
    {
    return this.userscore;
    }
    }