各位高人,能帮帮我吗?
我在加入分页功能后,执行也面报错如下:
HTTP Status 500 - 
--------------------------------------------------------------------------------
type Exception report
message 
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:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root cause java.lang.NullPointerException
org.apache.jsp.ys55.RigTot.RigTotBot_jsp._jspService(org.apache.jsp.ys55.RigTot.RigTotBot_jsp:172)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
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.12 logs.我的源码如下:

<%@ include file = conn.jsp" %>
<% 
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<META content="MSHTML 6.00.2800.1498" name=GENERATOR>
<BODY style="OVERFLOW-X: hidden; MARGIN: 4px">

<%
  int intPageSize; //一页显示的记录数
  int intRowCount; //记录总数
  int intPageCount; //总页数
  int intPage; //待显示页码
  intPageSize = 30; //设置一页显示的记录数  //String strTypeName = "";
  //String strType = request.getParameter("type");
  String id="";
  String strPage = request.getParameter("page"); 
  if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据 
    intPage = 1; 
  } 
  else{//将字符串转换成整型 
   intPage = java.lang.Integer.parseInt(strPage); 
   if(intPage< 1) intPage = 1; 
  }  Statement stmt = null;
  ResultSet RS=null;
  stmt = conn.createStatement();
  String sql;
  sql="select * from 113 where CreateTime>='"+SDate+"' and CreateTime<='"+EDate+"' order by id desc ";    //获取记录总数 
  RS.last(); 
  intRowCount = RS.getRow();   //记算总页数 
  intPageCount = (intRowCount+intPageSize-1) / intPageSize;   //调整待显示的页码 
  if(intPage >intPageCount) intPage = intPageCount; 
%><TABLE 
style="BORDER-RIGHT: #425594 1px solid; BORDER-TOP: #425594 1px solid; BORDER-LEFT: #425594 1px solid; BORDER-BOTTOM: #425594 1px solid" 
height=20 cellSpacing=0 cellPadding=2 width="100%" border=0>
  <TBODY>
  <TR>
    <TD background=../image/titlebg.gif></TD></TR></TBODY></TABLE>
<TABLE 
style="FONT-SIZE: 12px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif" 
borderColor=#ffffff cellSpacing=1 cellPadding=2 width="100%" align=center 
bgColor=#666666 border=0>
  <TBODY> 
  <TR bgColor=#8fa9de> 
    <TH align=middle width="13%">号码</TH>
    <TH align=middle width="69%">内容</TH>
    <TH align=middle width="18%">日期</TH>
  </TR>
  <%
try{
RS=stmt.executeQuery(sql);
if(intPageCount >0){
//将记录指针定位到待显示页的第一条记录上 
    RS.absolute((intPage-1) * intPageSize + 1); 
    //显示数据
    int i = 0; 
while(i< intPageSize && !RS.isAfterLast()){
%>
  <TR id=id1 onmouseover="this.style.backgroundColor='#C2D0ED'" 
  onmouseout="this.style.backgroundColor='#FFFFFF'" bgColor=#ffffff> 
    <TD align="center" width="13%"><%=RS.getString("Phone")%></TD>
    <TD width="69%"><%=convert(RS.getString("Content"))%></TD>
    <TD align="center" width="18%"><%=FormatDateTime(RS.getString("CreateTime"))%></TD>
  </TR>  <%
  RS.next(); 
      i++;
}
}
%><tr><td><p align='center'><fontcolor='#000080'>&nbsp;共</font><b><font color=red><%=intRowCount%></font></b><fontcolor='#000080'>个</font>   <%
  if (intPageCount>1) {
    String httpurl = "";
    httpurl="index.jsp?&page=";
%>
            分页
<%    for (int j=1;j<=intPageCount;j++) {
      if (intPage==j) {
%>
            [<b><%=j%></b>]
<%
      }
      else {
%> 
            [<b><a href='<%=httpurl+j%>'><%=j%></a></b>]
<%
      }
    }
  }
%>    
            </font></a></p></td>          </tr><%
}
finally 
{
try {
if (RS!=null) {
RS.close();
 }
  }
catch (SQLException e) {}
try {
        if (stmt!=null) {
  stmt.close();
}
}
catch (SQLException e) {}
try {
 if (conn!=null) {
 conn.close();
      }
}
catch (SQLException e) {}
}
%>
  </TBODY> 
</TABLE>
</BODY></HTML>哪位高手能告诉我这是怎么回事,我搞不清楚。
晴帮帮忙!感激!

解决方案 »

  1.   

    你的RigTotBot.jsp页面引用了未经初始化的对象,引起了空指针错误。自己好好排查一下是哪个变量引用的时候是NULL。
      

  2.   

    stmt = conn.createStatement();
    String sql;
    sql="select * from 113 where CreateTime>='"+SDate+"' and CreateTime<='"+EDate+"' order by id desc ";//获取记录总数
    RS.last();
    intRowCount = RS.getRow(); 你的sql何曾执行过?
      

  3.   

    还有
     intPageSize = 30; //设置一页显示的记录数
    这个变量没定义int类型。
      

  4.   

    可能是你这句 intPage = java.lang.Integer.parseInt(strPage);  引起了空值异常
    strPage有可能是null 不能转换,
    你得到strPage的时候要判断一下,如果是空就要把它设一个默认值
    java.lang.NullPointerException
    org.apache.jsp.ys55.RigTot.RigTotBot_jsp._jspService(org.apache.jsp.ys55.RigTot.RigTotBot_jsp:172)
    这里说了哪个地方发生了这个错误,你可以在web服务器目录下的work目录下找到这个文件,看看它的这行是哪里