注意这句:java.lang.NullPointerException
org.apache.jsp.booking.bookinglist_jsp._jspService(bookinglist_jsp.java:118)
这说明你的bookinglist.jsp由tomcat转换成了servlet,文件名是bookinglist_jsp.java,它位于$Tomcat$\work\Standalone\localhost\下的目录下,你最好找到这个文件看看出错的118行对应你的jsp文件的那一行,你肯定是对一个空的reference进行了操作

解决方案 »

  1.   

    就是查看Tomcat由jsp生成的Java源文件,找到对应的行就行了。
      

  2.   

    代码有点长,希望各位有耐心啊。拜托拜托!
    <%  
    String user_id_tmp=(String) session.getAttribute("user_id");
    if(user_id_tmp==null)

    %>
    中间是HTML
    <%
    }
    else
    {
    %><body>
    <br><table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#89A5CF">
    <tr>
    <td width="100%">
    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bordercolor="#89A5CF">
    <%
          String type=(String)session.getAttribute("user_type");
          String sql="",sql_p="",sql_t="",sql_r="",sql_s="",user_id="",tname="",rname="",sname="";
          int i=0; int pageno = 0;//初始化当前页码
    String currentpage = request.getParameter("pageno");//取得当前页码参数
    //如果不为空,则将当前页码转换为整型数
    if (currentpage != null)
    pageno=Integer.parseInt(currentpage);
    //初始化计数器、开始记录、每页显示记录和总页数
    int count = 0, begin = 0, pagesize =100, totalpage = 1;
    //如果当前页码小于1,则让当前页码为1(即首页)
    if(pageno < 1)
    pageno = 1;
    //计算开始记录
    begin = (pageno * pagesize  -pagesize + 1);

        ResultSet rs=null;
    String position=request.getParameter("value_i");

    sql_p="select * from BOOKINGLIST where LOCATION_ID='"+position+"'";
    ResultSet rs_p=UserBean.executeQuery(sql_p);
    while(rs.next())
          {
            count++;
    if((count >= begin)&&(count < begin+pagesize)) 
       { 
       int bookinglist_id=rs_p.getInt("BOOKINGLIST_ID");
       user_id=rs_p.getString("USER_ID");
       int tno=rs_p.getInt("TNO");
       int rno=rs_p.getInt("RNO");
       int sno=rs_p.getInt("SNO");
       int status=rs.getInt("STATUS");
       
       sql_t="select TNAME from TIME whereTNO='"+tno+"'";
       ResultSet rs_t=UserBean.executeQuery(sql_t);
       sql_r="select RNAME from REASON where TNO='"+rno+"'";
       ResultSet rs_r=UserBean.executeQuery(sql_r);
       sql_s="select SNAME from STATUS where TNO='"+sno+"'";
       ResultSet rs_s=UserBean.executeQuery(sql_s);
         tname=rs_t.getString("TNAME");
         rname=rs_r.getString("RNAME");
         sname=rs_s.getString("SNAME");
     UserBean.closeStmt();
                         UserBean.closeConn();
     }//the end of if
              
          }//the end of while   
       UserBean.closeStmt();
       UserBean.closeConn();
    %>
    下面是一个表格,把<%=user_id%>,<%=tname%>,<%=sname%>等等填进去。主要是实现预约实验室的机子的功能,要输入理由,时间段,这个页面是显示预约请求的,就是bookinglist表,我在里面只写了一条记录。各位麻烦帮看看,谢谢啦
      

  3.   

    我找了,没找到:(
    work/catalina/localhost/目录下的文件夹里都是.ser文件,打不开啊,各位达人能否说清楚点啊,不好意思,偶刚开始学,还请各位多包涵,说的简单一点,不然看不懂啦。thanks
      

  4.   

    我不知道tomcat5的servlet放在哪里,不过你可以搜一下bookinglist_jsp.java的位置
      

  5.   

    找到了,似乎是定义的问题,重定义了好多东西,那个resultset没搞懂。我再调调看啊,谢谢啦
      

  6.   

    来迟了, 同意 zebra007(呼呼)
      

  7.   

    有个白痴错误就不说了,那个resultset我定义在循环里了,别人说不行,得在循环外面声明,在里面直接赋值就ok了,应该怎么声明呢?谢谢
      

  8.   

    我是这么写的,全错了ResultSet rs_t="",rs_r="",rs_s="";应该怎么写嘞?
      

  9.   

    你把if(...){...}里面那个UserBean.closeStmt();
                         UserBean.closeConn();
    去掉吧
      

  10.   

    我觉得打印调试信息最好
    在不同地方加System.out.println("你想打印的!");
      

  11.   

    java.lang.NullPointerException
    org.apache.jsp.booking.bookinglist........
    ........................
    String position=request.getParameter("value_i");
    sql_p="select * from BOOKINGLIST where LOCATION_ID='"+position+"'";是不是你的position为null?
      

  12.   

    position 是上一个页面用一个隐藏的文本框传的一个button的Value值。上一个页面代码如下:
    <input type="hidden" name="value_i" value="<%=position%>">
    想把<input type="submit" name="Submit3" value="3">里面的value值传出去,别人教我这么用的,你看看有问题吗?
      

  13.   

    介个嘛,要耐心,慢慢来,急不得滴,嘿嘿,谢谢各位达人了,结贴的时候分会给你们的,不过在等等看,看还有灭有高手说出点什么更具建设性的话,hoho
      

  14.   

    //看看传过来没有
    String position=request.getParameter("value_i");
    System.out.println("position:"+position);
    sql_p="select * from BOOKINGLIST where LOCATION_ID='"+position+"'";
      

  15.   

    首先要删掉多余的那两句(前面的):
    UserBean.closeStmt();
    UserBean.closeConn();
    再说你那个UserBean哪里来的啊
      

  16.   

    根本显示不出来,又异常了,好像还是那个resultset和对数据库进行操作的问题,rs.next()的问题
      

  17.   

    那个bean自己写的,编译以后.class放在common/class/bbs下面
      

  18.   

    那个bean就是执行数据库的操作的
      

  19.   

    我都替你急了,你有没有确切找到哪行啊
    把root cause 
    贴上来
      

  20.   

    改成rs_p.next()还是不行,介个白痴错误表笑我啊
      

  21.   

    root cause java.lang.NullPointerException
    org.apache.jsp.booking.bookinglist_jsp._jspService(bookinglist_jsp.java:119)
    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)
      

  22.   

    以前那个是118行,是这一句ResultSet rs_p=UserBean.executeQuery(sql_p);
    现在是119行,是这一句while(rs_p.next())
      

  23.   

    那你就打开bookinglist_jsp.java看看119行是什么啊
      

  24.   

    以前那个是118行,是这一句ResultSet rs_p=UserBean.executeQuery(sql_p);
    现在是119行,是这一句while(rs_p.next())
      

  25.   

    你找的是bookinglist_jsp.java吗
    别是bookinglist.jsp吧
      

  26.   

    是不是因为我数据库中只有一条记录然后.next()就空了,所以异常?
      

  27.   

    是那个编译成java的代码,这点可以确定啦
      

  28.   

    你那个UserBean根本没有定义啊
      

  29.   

    在前面,我没拷<jsp:useBean id="UserBean" scope="page" class="bbs.ourdb"/>。就是这个
      

  30.   

    至少应该有这句吧
    <jsp:useBean id="userBean" scope="page" class="bbs.UserBean" />
      

  31.   

    你在while循环体的最末尾,system.out一下rs_p.看是不是null