首先,你处理异常的方法不是很好,出现异常了,方法内部自己消化了,外部程序根本不知道发生了什么事。一般来说,当发生异常的时候,要么自己处理,要么通知外部程序,外部程序自己做出反映。你的程序肯定是在这段代码中出现问题:
out.print(ReadData.geterrorMessage());
  //链接数据库
  ReadData.ExecuteSql();
  
  //显示数据
  while(ReadData.sqlRst.next())估计是 ReadData.sqlRst==null
为什么会是null呢?可能是 1 、“public ConnectData() //链接数据库“出现问题了,但是我们不知道,因为异常被内部消化了;2、“public void ExecuteSql() “出现问题了,我们也不知道,原因同上;3、award表是空的,sqlRst本来就是null.
我建议你修改你的ConnectData,观察抛出来的异常。

解决方案 »

  1.   

    这些地方都是提示啊:
    org.apache.jsp.ConnectData_jsp._jspService(ConnectData_jsp.java:86)
    ..............你把JSP翻译的java文件看看你就应该可以大致明白了,具体的编译后的servlet放在什么地方主要看你使用的是什么IDE后面86是你出错行数
      

  2.   

    出现exception 的时候 要抛出
     并 在函数 声明 throws exception
      

  3.   

    skylan(小说<<风云>>真的很棒!) 根据你改的还是不行呀!
    各位兄弟帮帮忙呀。
    着急......
      

  4.   

    先去掉try...catch....逐行调试看看
      

  5.   

    去掉try...catch....调试看看
      

  6.   

    可能是这个原因,我在我这里的包是test,你换成你自己的包Datainfo试下
      

  7.   

    我试过了,不行。
    我再发一次,你看看:
    ***************************************************************************************
    package Datainfo;import java.sql.*;
    import java.lang.*;public class ConnectData
    {
    //变量声明 
    Connection sqlCon; //数据库连接对象 
    Statement sqlStmt; //SQL语句对象 
    ResultSet sqlRst; //结果集对象 
    String strCon; //数据库连接字符串 
    //String strSQL; //SQL语句
    //String Result; //返回结果/*********************************************/
     public String ConnectionData()
    {
      try
    {//装载JDBC-ODBC驱动程序
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
             //设置数据库连接字符串 
             strCon = "jdbc:odbc:db1"; 
             //连接数据库 
             sqlCon = java.sql.DriverManager.getConnection(strCon,"",""); 
             //创建SQL语句对象 
             sqlStmt = sqlCon.createStatement(); 
           
    }
      catch(Exception E)
    {
         System.err.println(E.getMessage());
     }
          return "This is ConnectionData()!";
     }/*********************************************/
     public ResultSet executeSql(String SQL)
    {
     try
    {
      ResultSet rs=null;
     //执行SQL语句并取得结果集  
              rs=sqlStmt.executeQuery(SQL);
      return rs;
    }
     catch(Exception E)
    {
         System.err.println(E.getMessage());
     return null;
     }
          }/*********************************************/
     public String CloseData()
    {
         try
    {
         //关闭结果集 
             sqlRst.close(); 
            //关闭SQL语句对象 
             sqlStmt.close(); 
            //关闭数据库
             sqlCon.close();
    }
     catch(Exception E)
    {
         System.err.println(E.getMessage());
     return null;
      }
     return "This is CloseData()!";    
     }
    }
    ***************************************************************************************
    <%@page contentType="text/html;charset=gb2312"%><%@page import="java.util.*"%>
    <%@page import="java.sql.*"%>
    <%@page import="java.lang.*"%><%//变量声明 
      ResultSet Result; //结果集对象
      String SQL; //持执行的SQL语句
      %><jsp:useBean id="ReadData" class="Datainfo.ConnectData" scope="page"/><html>
    <body>
    <%
       SQL="select * from award";
      //链接数据库
      out.print(ReadData.ConnectionData());  out.print("<br>");
      //读取数据
      Result=ReadData.executeSql(SQL);
      //out.print(ReadData.executeSql(SQL));
     
      out.print("<br>");
      out.print("<table>");
      out.print("<tr>");
      out.print("<td width=100>"); out.print("编号"); out.print("</td>");
      out.print("<td width=100>"); out.print("部门"); out.print("</td>");
      out.print("<td width=100>"); out.print("岗位"); out.print("</td>");
      out.print("<tr>");  while(Result.next())
      {
      out.print("<tr>");
      out.print("<td width=100>"); out.print(Result.getString(1)); out.print("</td>");
      out.print("<td width=100>"); out.print(Result.getString(1)); out.print("</td>");
      out.print("<td width=100>"); out.print(Result.getString(1)); out.print("</td>");
      out.print("<tr>");
       }
      
      out.print("</table>");
      out.print(ReadData.CloseData());
    %></body>
    </html>
    真要命,搞了好几天了。都没搞定。
    分不够再加!
      

  8.   

    报错:
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Datainfo.ConnectData.executeSql(Ljava/lang/String;)Ljava/sql/ResultSet;
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
    org.apache.jsp.ConnectData_jsp._jspService(ConnectData_jsp.java:94)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause java.lang.NoSuchMethodError: Datainfo.ConnectData.executeSql(Ljava/lang/String;)Ljava/sql/ResultSet;
    org.apache.jsp.ConnectData_jsp._jspService(ConnectData_jsp.java:65)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    note The full stack trace of the root cause is available in the Tomcat logs.
    --------------------------------------------------------------------------------Apache Tomcat/5.0.16
      

  9.   

    把public String ConnectionData()改成无参构造函数public ConnectData(){  .... }
     public ConnectData()
    {
      try
    {//装载JDBC-ODBC驱动程序
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
             //设置数据库连接字符串 
             strCon = "jdbc:odbc:db1"; 
             //连接数据库 
             sqlCon = java.sql.DriverManager.getConnection(strCon,"",""); 
             //创建SQL语句对象 
             sqlStmt = sqlCon.createStatement(); 
           
    }
      catch(Exception E)
    {
         System.err.println(E.getMessage());
     }
     }
    jsp文件中  out.print(ReadData.ConnectionData());  去掉
    getString(1); 分别取记录的话应该是getString(1); getString(2); getString(3); out.print(ReadData.CloseData());———>ReadData.CloseData();———>
      

  10.   

    最后多了个箭头,我把我整理好的程序给你贴上去<%@page contentType="text/html;charset=gb2312"%><%@page import="java.util.*"%>
    <%@page import="java.sql.*"%>
    <%@page import="java.lang.*"%><%//变量声明 
      ResultSet Result; //结果集对象
      String SQL; //持执行的SQL语句
      %><jsp:useBean id="ReadData" class="Datainfo.ConnectData" scope="page"/><html>
    <body>
    <%
       SQL="select * from award";
      //链接数据库
      out.print("<br>");
      //读取数据
      Result=ReadData.executeSql(SQL);
      //out.print(ReadData.executeSql(SQL));
     
      out.print("<br>");
      out.print("<table>");
      out.print("<tr>");
      out.print("<td width=100>"); out.print("编号"); out.print("</td>");
      out.print("<td width=100>"); out.print("部门"); out.print("</td>");
      out.print("<td width=100>"); out.print("岗位"); out.print("</td>");
      out.print("<tr>");  while(Result.next())
      {
      out.print("<tr>");
      out.print("<td width=100>"); out.print(Result.getString(1)); out.print("</td>");
      out.print("<td width=100>"); out.print(Result.getString(2)); out.print("</td>");
      out.print("<td width=100>"); out.print(Result.getString(3)); out.print("</td>");
      out.print("<tr>");
       }
      
      out.print("</table>");
      ReadData.CloseData();
    %></body>
    </html>
    /*
     * Created on 2005-2-18
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package test;import java.sql.*;public class ConnectData
    {
    //变量声明 
    Connection sqlCon = null; //数据库连接对象 
    Statement sqlStmt = null; //SQL语句对象 
    ResultSet sqlRst = null; //结果集对象 
    String strCon; //数据库连接字符串 
    //String strSQL; //SQL语句
    //String Result; //返回结果/*********************************************/
     public ConnectData()
    {
      try
    {//装载JDBC-ODBC驱动程序
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
             //设置数据库连接字符串 
             strCon = "jdbc:odbc:db1"; 
             //连接数据库 
             sqlCon = java.sql.DriverManager.getConnection(strCon,"",""); 
             //创建SQL语句对象 
             sqlStmt = sqlCon.createStatement(); 
           
    }
      catch(Exception E)
    {
         System.err.println(E.getMessage());
     }
     }/*********************************************/
     public ResultSet executeSql(String SQL)
    {
     try
    {
      ResultSet rs=null;
     //执行SQL语句并取得结果集  
              rs=sqlStmt.executeQuery(SQL);
      return rs;
    }
     catch(Exception E)
    {
         System.err.println(E.getMessage());
     return null;
     }
          }/*********************************************/
     public String CloseData()
    {
         try
    {
         //关闭结果集 
             sqlRst.close(); 
            //关闭SQL语句对象 
             sqlStmt.close(); 
            //关闭数据库
             sqlCon.close();
    }
     catch(Exception E)
    {
         System.err.println(E.getMessage());
     return null;
      }
     return "This is CloseData()!";    
     }
    }
      

  11.   

    注意下包名称,我用的是test这个我知道,我早改过了。
      

  12.   

    Result=ReadData.executeSql(SQL);----->
    ResultSet Result=(ResultSet)ReadData.executeSql(SQL);
      

  13.   

    try-catch用来确认出错位置
    System.out.print("出错标记");更详细的确认出错位置
      

  14.   

    skylan(小说<<风云>>真的很棒!) 最后多了个箭头,我把我整理好的程序给你贴上去多在什么地方?
      

  15.   

    skylan(小说<<风云>>真的很棒!) 搞定了,谢谢你。
    再问你最后一个问题,然后给分。到底问题出在什么地方?
      

  16.   

    out.print(ReadData.CloseData());这个你是要关闭连接对吧?可是现在是在输出到控制台,没有起作用
      

  17.   

    装载JDBC-ODBC驱动程序
    好像已经过时,用java驱动程序