伙计只剩下9分了,各位帮帮忙!
使用  jdk1.4.2 + tomcat5.0 + mysql5.0 + eclipse3.01
做了一个前台显示查询结果的页面,使用servlet 转到jsp页面后出错,错误提示如下: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.admin_jsp._jspService(admin_jsp.java:72)
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 logsjsp显示页面的代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*,com.*" errorPage="" %><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
.STYLE2 {font-size: 12px}
-->
</style>
</head><body>
<jsp:useBean id = "BbsBean" scope="page"
 class="com.BbsBean"/><%
ArrayList list = new ArrayList();list = (ArrayList)request.getAttribute("list");
int n = list.size();
%>
<form id="form1" name="form1" method="post" action="../servlet/Del">
 <%
   for(int i=0; i<n;i++){
   BbsBean bean = (BbsBean)list.get(i);
   String id = bean.getId();
   String title = bean.getTitle();
      %>
  <table width="476" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC" bgcolor="#CCCCCC" >
    <tr>
      <td width="397"><span class="STYLE2">   
     <input type="checkbox" name="msg" value="<%=id%>" /> 
  
     <%=title%>
      </span></td>
    </tr>
    <tr>
      <td><div align="center">
        
      </div></td>
    </tr>
  </table>
  <div align="center">
    <%
  }
  %>
    <input type="submit" name="Submit" value="删除" />
  </div>
</form>
<form name="form2" method="post" action="">
  <span class="STYLE2" align="right">
  <label>
  <input type="submit" name="Submit2" value="退出" onClick="fit()">
  </label>
  </span>
</form>
<p>&nbsp;</p>
</body>
</html>大家帮忙看看是那错了呢?

解决方案 »

  1.   

    你可在tomcat的work目录下查看一下admin_jsp.java的源代码
      

  2.   

    <jsp:useBean id = "BbsBean" scope="page" class="com.BbsBean"/>首先 换个名字.. 饮用的名字怎么能和类明一样呢?list = (ArrayList)request.getAttribute("list");
    看看list 里面的对象是不是null啊?
      

  3.   

    <jsp:useBean id = "BbsBean" scope="page"
     class="com.BbsBean"/>
    感觉这句有问题list = (ArrayList)request.getAttribute("list");
    int n = list.size();我觉得应该改成list = (ArrayList)request.getAttribute("list");
    if(list==null)
    {
      list=new ArrayList();
    }
    int n = list.size();这样防下空指针
      

  4.   

    servlet代码:import java.io.IOException;
    import com.runze.*;
    import java.util.*;import javax.servlet.*;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /*
     * Created on 2006-10-17
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     *//**
     * @author Administrator
     * 
     * TODO To change the template for this generated type comment go to Window -
     * Preferences - Java - Code Style - Code Templates
     */
    public class quer extends HttpServlet { public void init(ServletConfig config) throws ServletException {
    super.init(config);

    } protected void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
    query query = new query();

    ArrayList list = new ArrayList();
        list = query.list();


    req.setAttribute("list",list);
    res.sendRedirect("../index.jsp");
    }
    }javaBean代码:
    package com.runze;import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import com.*;public class query {
    public ArrayList list() {
    String sql = "select * from neirong"; ArrayList list = new ArrayList(); Conn conn = new Conn(); ResultSet rs = conn.executeQuery(sql); try {
    while (rs.next()) {
    BbsBean bbsBean=new BbsBean();
    bbsBean.setId(rs.getString(2));
    bbsBean.setTitle(rs.getString(3));
    bbsBean.setContent(rs.getString(4));
    list.add(bbsBean); }
    } catch (SQLException e) { e.printStackTrace();
    }
    return list;
    }}
      

  5.   

    谢谢大家,今天早上问题已经解决了。是list.size()的问题,应该先确定数组列表的长度,才能获取,所以前边加上:list.tirmToSize();就解决了