我想在使用JSP的页面上显示5000条记录。但是我正在摆脱内存异常。我这样做的,java.lang.outofmemoryError java
<TABLE><tr><td>Header1</td><td>Header2</td><td>Header3</td><td>Header4</td><td>Header5</td></tr>");
<%Test test = new Test();
List myList = test.fetchdata();
Iterator itr = myList.iterator();
while(itr.hasNext())
{
Object[] row = (Object[]) itr.next();
String hdr1 = (String) row[0];
String hdr2 = (String) row[1];
String hdr3 = (String) row[2];
String hdr4 = (String) row[3];
String hdr5 = (String) row[4];
stringBuilder.append"<tr><td>'"+hdr1+"'</td><td>'"+hdr2+"'</td><td>'"+hdr3+"'</td><td>'"+hdr4+"'</td><td>'"+hdr5+"'</td></tr>");
}
stringBuilder.append("</TABLE></body></html>");
out.print(stringBuilder.toString());
%>
1)如果我想决定保持5000条记录在屏幕上,是有什么错在我的代码
2)或将如果我使用分页这个错误会等等?
“我试图在页面上显示5000条记录” - 不,你不想这样做。更重要的是,你的用户不想消化那么多记录。您可能通过分页消除错误。如果Google和Stackoverflow足够好,为什么不适合你? – duffymo
没有像样的网站每页显示超过100行。您应该为您的数据表分页以提高性能。此外,**你不应该在你的代码中使用** scriptlet,阅读(并应用)[如何避免JSP-文件中的Java代码?](http://stackoverflow.com/a/3180202/1065197)。 –
字符串占用了内存,并且您在这里创建了数千个字符串,这可以快速填充内存。我不会每次创建5个字符串(hdr1-5),而是直接将它们放在stringbuilder.append中。另外,在你的构建器中使用多个“.append()”,比如stringBuilder.append(“”).append(row [0])。append()等.. –
Logan