tomcat报错The server encountered an internal error that prevented it from fulfilli

脑浆炸裂女孩 2016-01-07 10:48:42
exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /right.jsp at line 28

25: //鍙栧嚭涓変釜
26: for(int j=0;j<3;j++){
27: bookInfo bi=new bookInfo();
28: bi=(bookInfo)al.get(time);
29: time++;
30:
31:


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
java.util.ArrayList.rangeCheck(ArrayList.java:604)
java.util.ArrayList.get(ArrayList.java:382)
org.apache.jsp.right_jsp._jspService(right_jsp.java:125)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


部分代码:
<%@ page language="java" import="java.util.*,com.jsz.model.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

//调用bookInfo,完成分页
bookInfoBo bib=new bookInfoBo();
//默认显示第一页
ArrayList al=bib.getBooksByPage(6,1);
//bookInfo bi=(bookInfo)request.getAttribute("booksInfo");
%>
<table width="100%" border="0">
<tr>
<td colspan="3" align="center"><img src="image/118.JPG" width="708" height="67" /></td>
</tr>
<%
int time =0;

for(int i=0;i<2;i++){
//打印两大行,每行有三个
%>
<tr>
<%

//取出三个
for(int j=0;j<3;j++){
bookInfo bi=new bookInfo();
bi=(bookInfo)al.get(time);
time++;


%>

<td width="33%" height="170" align="center"><table width="100%" height="170" border="0">
<tr>
<td width="27%" rowspan="3"><img src="image/活着.jpg" width="112" height="150" /></td>
<td width="73%"> </td>
</tr>
<tr>
<td height="17" align="left" valign="top"><a href="showbooksClServlet?id=1"><%=bi.getBookname() %></a></td>
</tr>
<tr>
<td height="96" align="left" valign="top">价格:22</td>
</tr>
<tr>
<td colspan="2">简介:222</td>
</tr>
</table></td>
<%
}
%>
</tr>
<%
}
%>


<tr>
<td colspan="3" align="center">【1】【2】【3】</td>
</tr>
</table>




public class bookInfoBo {

//定义一些变量
private ResultSet rs=null;
private Connection ct=null;
private PreparedStatement ps=null;

//分页显示书

public ArrayList getBooksByPage(int pageSize,int pageNow){
ArrayList al=new ArrayList();
try{
ct=new condb().getConn();

ps=ct.prepareStatement("selsct top "+pageSize+" * from book where bookid not in(select top"+(pageNow-1)*pageSize+"bookid from book)");

rs=ps.executeQuery();
while(rs.next()){
bookInfo bi=new bookInfo();
bi.setBookid(rs.getString(1));
bi.setBookname(rs.getString(2));
bi.setBrief(rs.getString(3));
bi.setPrice(rs.getFloat(4));
bi.setAmount(rs.getInt(5));
bi.setPublisher(rs.getString(6));
bi.setPhoto(rs.getString(7));
bi.setType(rs.getString(8));
//加入到ArrayList里去
al.add(bi);


}
}
catch(Exception e){
e.printStackTrace();

}
finally{
this.close();
}

return al;
}
...全文
2493 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34695199 2017-03-12
  • 打赏
  • 举报
回复
怎么解决的啊
脑浆炸裂女孩 2016-01-07
  • 打赏
  • 举报
回复
问题已经解决了,谢谢!
  • 打赏
  • 举报
回复
数组越界 一个没有你却拿取了第一个数据 bi=(bookInfo)al.get(time); java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 你应该判断这个al是否不为空且有size在继续调用

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧