type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NullPointerException
org.apache.jsp.stuinfo_005fshow_jsp._jspService(stuinfo_005fshow_jsp.java:68)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.请问这是什么原因,其他内容都能显示,就是不能显示从数据库取出的数据

解决方案 »

  1.   

    java.lang.NullPointerException
    典型的空指针异常,需要源码才能看出错误在哪里
      

  2.   

    package dbconnect;
    import java.sql.*;
    import java.io.*;
    public class operdb
    {
    private String driver=null;
    private String url=null;
    private String uid=null;
    private String psw=null;
    private Connection conn;
    private Statement smt;
    private ResultSet rs;
        operdb()
    {
    driver="com.microsoft.java.jdbc.sqlserver.SQLServerDriver";
    url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=";
    uid="";
    psw="";
    }
    public void dbconnect(String dbname)
    {
    try
    {
    Class.forName(driver).newInstance();
    url=url+dbname;
    conn=DriverManager.getConnection(url,uid,psw);
    }
    catch(Exception ex)
    {
    System.out.print(ex.getMessage());
    }
    }

    public ResultSet dbquery(String dbname,String sql)
    {
    try
    {
    this.dbconnect(dbname);
    smt=conn.createStatement(1004,1007);
    rs=smt.executeQuery(sql);
    }
    catch(Exception ex)
    {
    System.out.print(ex.getMessage());
    }
    return rs;
    }
    }这个编译也通过了,我的sqlserver是windows身份验证,用JCreator编译生成.class文件,不知道是哪里有问题
      

  3.   

    你的dbname传进来了没有?
    或者你可以先把executeQuery语句屏蔽掉,输出stmt对象看看
      

  4.   

    最好不要用MS 的JDBC驱动,,建议用JTDS
      

  5.   

    添加:
    public static void main(String[] args)
    {
         operdb  op = new operdb();
         op.dbconnect() ...
         ...  ...
         用dbquery 查询出数据,并打印出来..
    }
      

  6.   

    stuinfo_005fshow_jsp.java:68察看这个文件的第68行,
      

  7.   

    你用的是什么系统啊?如果是XP要打SP3或SP4补丁的
      

  8.   

    看看连接字符串 URL 有没有问题:
    url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=";
      

  9.   

    conn=DriverManager.getConnection(url,uid,psw);你的conn是不是空的?你的uid,psw在哪里?我怎么没发现?如果你没有这两个值那么自然没有连接,当然是空指针