总是出现这样的问题错误提示.请问哪位知道告诉一下原因.谢谢
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:565)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
org.apache.jsp.dbprogram_jsp._jspService(dbprogram_jsp.java:116)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

解决方案 »

  1.   

    代码,并在你的 dbprogram.jsp 上做好标记
      

  2.   

    把code也发出来
    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page info="database handler"%> 
    <%@ page import="java.io.*"%> 
    <%@ page import="java.util.*"%> 
    <%@ page import="java.sql.*"%> 
    <%@ page import="javax.servlet.*"%> 
    <%@ page import="javax.servlet.http.*"%> 
    <!--导入结束--> 
    <html>
    <head>
    <title>数据库连接实验</title>
    </head>
    <body>
    <% 
        String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";  
        String sConnStr = "jdbc:odbc:try";//“try”的意思就是与刚才设置的数据源名对应; 
        Connection Con = null;
        Statement Stmt = null;
    try 

         try          /*加载驱动程序*/
        {
        Class.forName(sDBDriver); 
         }
        catch(java.lang.ClassNotFoundException e)
        { 
       out.print("Connect to Database error: " + e.getMessage());
         }
       try          /*建立连接*/
        {
       Con = DriverManager.getConnection(sConnStr,"sa",""); 
         }
       catch(SQLException e)
       {
       out.print(e.toString());
        }        Stmt = Con.createStatement();    /*创建JDBC声明*/ 
            String query="CREATE TABLE GUEST" +           /*在数据库中创建新的表*/
                         "(NUM VARCHAR(32),"+ 
                         "USERNAME TEXT,"+ 
                         "CONTENT TEXT,"+ 
                         "PASSWORD INTEGER,"+ 
                         "TOTAL INTEGER,"+
                         "REALNAME TEXT)"; 
            Stmt.executeUpdate(query);         /*更新数据库*/

    catch (Exception e) {} 
    out.println("恭喜,表连接创建成功!"); 
    %> 
    <%
    ResultSet RS= Stmt.executeQuery("SELECT * FROM EMPLOYEE WHERE eage<25");     /*连接到数据库中的表EMPLOYEE上*/
    String tt;                                                  /**号表示选择表中所有的列*/
    String link;                                                /*若选择其中的某几列可以将*号换成列标号*/  
    String makeStr;                                             /*WHERE语句表示条件选择*/
    out.print("<table border=2 style=color:blue >");
    while (RS.next()) {
      out.print("<tr><td>");
           tt = RS.getString("ename");              /*查询表中NUM字段的内容,字段内容可能使数组,默认列输出*/
           out.print(tt);
       out.print("</td><td>");
       tt = RS.getString("esex");
       out.print(tt);
       out.print("</td><td>");
       tt = RS.getString("eage");
       out.print(tt);
       out.print("</td><td>");
       tt=RS.getString("egrade");
       out.print(tt);
       out.print("</td><td>");
     } 
    out.print("</table>");
    RS.close();
    out.println("数据查询成功!");
    %>
    <%                                                                        /*在数据库中添加数据*/
            String sql="INSERT INTO EMPLOYEE VALUES ('5','aaa','m',54,'hehe')"; 
            Stmt.executeUpdate(sql);
            out.println("添加数据成功!");
    %>
    </body>
    </html>
      

  3.   

    搞不清楚,你的程序问题多多,给你改了一下。
    1 前面发现错误了要停下来,要不后面也全跟着错的。
    2 记得程序结束后要做清理工作。=======================================
    <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page info="database handler"%> 
    <%@ page import="java.io.*"%> 
    <%@ page import="java.util.*"%> 
    <%@ page import="java.sql.*"%> 
    <%@ page import="javax.servlet.*"%> 
    <%@ page import="javax.servlet.http.*"%> 
    <!--导入结束--> 
    <html>
    <head>
    <title>数据库连接实验</title>
    </head>
    <body>
    <% 
        String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";  
        String sConnStr = "jdbc:odbc:try";//“try”的意思就是与刚才设置的数据源名对应; 
        Connection Con = null;
        Statement Stmt = null;
    try 

    Class.forName(sDBDriver); 
    }catch(java.lang.ClassNotFoundException e)

    out.print("Connect to Database error: " + e.getMessage());
    return;    //出现严重错误立刻中断程序,要不错误向下跑会给下面的程序错误冲了,反而不知道什么回事。
    }

    try          /*建立连接*/
    {
    Con = DriverManager.getConnection(sConnStr,"sa",""); 
    }
    catch(SQLException e)
    {
    out.print("无法连接到数据库" +e.toString());
    return ;//出现严重错误立刻中断程序,要不错误向下跑会给下面的程序错误冲了,反而不知道什么回事。
    }

    //建立表的话这样第一次运行没问题,第二次会报错,建议另外处理。
    /*
    try{
    Stmt = Con.createStatement();   
            String query="CREATE TABLE GUEST" +           
                         "(NUM VARCHAR(32),"+ 
                         "USERNAME TEXT,"+ 
                         "CONTENT TEXT,"+ 
                         "PASSWORD INTEGER,"+ 
                         "TOTAL INTEGER,"+
                         "REALNAME TEXT)"; 
            Stmt.executeUpdate(query);        


    catch (SQLException e) {} 
    out.println("恭喜,表连接数据表成功!"); 
    */
    %> 
    <%
    ResultSet RS=null;
    try{
    Stmt = Con.createStatement(); 
    RS= Stmt.executeQuery("SELECT * FROM EMPLOYEE WHERE eage<25");     /*连接到数据库中的表EMPLOYEE上*/
    String tt;                                                  /**号表示选择表中所有的列*/
    String link;                                                /*若选择其中的某几列可以将*号换成列标号*/  
    String makeStr;                                             /*WHERE语句表示条件选择*/
    out.print("<table border=2 style=color:blue >");
    while (RS.next()) {
    out.print("<tr><td>");
    tt = RS.getString("ename");              /*查询表中NUM字段的内容,字段内容可能使数组,默认列输出*/
    out.print(tt);
    out.print("</td><td>");
    tt = RS.getString("esex");
    out.print(tt);
    out.print("</td><td>");
    tt = RS.getString("eage");
    out.print(tt);
    out.print("</td><td>");
    tt=RS.getString("egrade");
    out.print(tt);
    out.print("</td><td>");

    out.print("</table>");
    RS.close();
    out.println("数据查询成功!"); String sql="INSERT INTO EMPLOYEE VALUES ('5','aaa','m',54,'hehe')"; 
            Stmt.executeUpdate(sql);
            out.println("添加数据成功!");
    }catch(SQLException e){
    out.print("数据库操作错误" +e.toString());
    }finally{
    //以下部分进行清理。
    if(RS != null){
    try{
    RS.close();
    }
    catch(SQLException e){}
    } if(Stmt != null){
    try{
    Stmt.close();
    }
    catch(SQLException e){}
    } if(Con != null){
    try{
    Con.close();
    }
    catch(SQLException e){}
    }
    }%>
    <%                                                                        /*在数据库中添加数据*/
           
    %>
    </body>
    </html>
      

  4.   

    运行修改后的代码出现如下问题:无法连接到数据库java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
    我那个程序是从书上复制过来的,我想code本身应该没有什么问题,可能是连接方面出了问题.
    其实我也看不懂我发的code,只是复制一下,你修改的我也看不懂,只是运行一下,看看能不能正确连接.再找问题.别笑我啊,新手来着.呵呵
      

  5.   

    谢谢哈哈鱼,我解决了,就是在ODBC设置改了一下..