页面提示如下:
type  Exception reportdescription The server encountered an internal error () that prevented it from fulfilling this request.exception
 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.lab1_jsp._jspService(lab1_jsp.java:63)
 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.27 logs.
我编写的连接数据库的代码如下:
/* condb.java  3.27.2006
   Bean to connect database */package condb;
import java.sql.*;public class condb
{
    String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String strDBUrl="jdbc:odbc:CRM";
    private Connection conn=null;
    private Statement stmt=null;
    ResultSet rs=null;
    //<!--注册数据库驱动程序-->
    public condb()
    {
        try
        {
            Class.forName(strDBDriver);
        }
        //异常处理
        catch(java.lang.ClassNotFoundException e)
        {
            System.err.println("condb():"+e.getMessage());
        }
    }
    //<!--建立数据库连接及定义数据查询-->
    public ResultSet executeQuery(String sql)
    {
        rs=null;
        try
        {
            conn=DriverManager.getConnection(strDBUrl,"sa","");//创建数据库连接对象
            stmt=conn.createStatement();
            rs=stmt.executeQuery(sql);
        }
        catch(SQLException ex)
        {
            System.err.println("aq.executeQuery:"+ex.getMessage());
        }
        return rs;
    }
    //<!--定义数据操作-->
    public void executeUpdate(String sql)
    {
        stmt=null;
        rs=null;
        try
        {
            conn=DriverManager.getConnection(strDBUrl,"sa","");
            stmt=conn.createStatement();
            stmt.executeQuery(sql);
            stmt.close();
            conn.close();
        }
        catch(SQLException ex)
        {
            System.err.println("aq.executeQuery:"+ex.getMessage());
        }
    }
    //<!--关闭数据库连接-->
    public void closeStmt()
    {
        try
        {
                stmt.close();
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }
    public void closeConn()
    {
            try
            {
                    conn.close();
            }
            catch(SQLException e)
            {
                    e.printStackTrace();
            }
    }
}
我用一段代码测试的
<jsp:useBean id="db" scope="page" class="condb.condb"/>
<%
  String sql="select * from User";
  ResultSet rs=db.executeQuery(sql);
  if(rs.next())
 {
   String getUserNAME=rs.getString("UserName");
   out.println(getUserNAME);
   rs.close();
 }
实在不知道怎么搞的了!谢谢大家帮忙啦!

解决方案 »

  1.   

    我用它连接SQL SERVER2000里的pubs数据库时成功显示数据的。换我自己设计的数据库就出这个问题了
      

  2.   

    我也是javabean连接sqlserver2000 ,出了问题.直接将代码写在jsp页面里面没问题,可是改成javabean就不行了,不知是怎么回事.我的错误是这样的:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 4 in the jsp file: /confirm.jsp
    Generated servlet error:
    Exeception cannot be resolved or is not a type
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    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.9 logs.
    --------------------------------------------------------------------------------
      

  3.   

    我也是javabean连接sqlserver2000 ,出了问题.直接将代码写在jsp页面里面没问题,可是改成javabean就不行了,晕,跟我一样。但是我另外的一个javabean就通了,搞不懂。
      

  4.   

    可是我的javabean直接在控制台上操作没问题啊
    java connbean      这样做没问题啊
      

  5.   

    我的问题自己解决啦!是因为数据库中的一张表名有问题。我原来的那张表名是:User,我用一个JavaBean检验发现这个名字有语法错误。就改成Users就好了。你们看看是不是表名有问题啊?
      

  6.   

    用用这个javabean检测一下错误
    package useBean;import java.sql.*;public class Link_db{

    private static Connection con=null;
    private Statement state=null;
    private ResultSet rs=null;

    /***************************************************
    *method name: init()<br>
    *method function: Set up DataBase Statement<br>
    *return value: void<br>
    *method function: no<br>
    *amend: crazyadept<br>
    * 2004/8/2<br>
    ****************************************************/
    public void init(Connection con){
    try{
    state=Link_db.con.createStatement();
    }catch(Exception e){
    System.out.println("init");
    System.out.println(e.getMessage());
    }
    }

    /***************************************************
    *method name: close()<br>
    *method function: close DataBase Connection<br>
    *return value:  void<br>
    *method function: no<br>
    *amend: crazyadept<br>
    * 2004/7/28<br>
    ****************************************************/
    public void close(){
    try{
    if (rs !=null){
    rs.close();
    rs=null;
    }
    }catch(Exception e){
    System.out.println("rs");
    System.out.println(e.getMessage());
    }
    try{
    if(state!=null){
    state.close();
    state=null;
    }
    }catch(Exception e){
    System.out.println("state");
    System.out.println(e.getMessage());
    }
    try{
    if(con!=null){
    con.close();
    state=null;
    }
    }catch(Exception e){
    System.out.println("close");
    System.out.println(e.getMessage());
    }
    }

    /***************************************************
    *method name: select()<br>
    *method function: select DataBase data<br>
    *return value:  int<br>
    *     k=-10; on word<br>
    *     k=0; on record<br>
    *     k=-1; have exception <br>
    *     k>0; it is ok<br>
    *parameter explain: no<br>
    *amend: crazyadept<br>
    * 2004/8/2<br>
    ****************************************************/
    public int select(String sql){
    int k=-10;
    this.init(Link_db.getCon());
    try{
    k=0;
    rs=state.executeQuery(sql);
    if(rs.next()){
    k=k+1;
    }
    }catch(Exception e){
    k=-1;
    System.out.println("select");
    System.out.println(e.getMessage());
    this.close();
    }
    this.close();
    return k;
    }

    /***************************************************
    *method name: update()<br>
    *method function: updata,insert,delete<br>
    *return value:  int<br>
    *     k=-10; on work <br>
    *     k=0; on insert data<br>
    *     k=-1; hava exception<br>
    *     k>0;  work is ok<br>
    *parameter explain: no<br>
    *amend: crazyadept<br>
    * 2004/8/2<br>
    ****************************************************/
    public int update(String sql){
    int k=-10;
    this.init(Link_db.getCon());
    try{
    k=0;
    k=state.executeUpdate(sql);
    }catch(Exception e){
    k=-1;
    System.out.println("update");
    System.out.println(e.getMessage());
    }
    this.close();
    return k;
    } /***************************************************
    *method name: getCon()<br>
    *method function: get DataBase Connection<br>
    *return value:  Connection<br>
    *     con; return DataBase Connection<br>
    *parameter explain: no<br>
    *amend: crazyadept<br>
    * 2004/8/2
    ****************************************************/
    public static synchronized Connection getCon(){
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con=DriverManager.getConnection("jdbc:odbc:CRM","sa","");
    }catch(Exception e){
    System.out.println("getCon");
    System.out.println(e.getMessage());
    }
    return con;
    }

    /***************************************************
    *method name: chStr()<br>
    *method function: change coding<br>
    *return value:  String<br>
    *      return Chainese<br>
    *parameter explain: str<br>
    *amend: crazyadept<br>
    * 2004/8/2<br>
    ****************************************************/
    public String chStr(String str){
    if(str==null){
    str="";
    }else{
    try{
    str=(new String(str.getBytes("iso-8859-1"),"GB2312")).trim();
    }catch(Exception e){
    System.out.println("chStr");
    System.out.println(e.getMessage());
    }
    }
    return str;
    }}