对于一个中等以上项目来说,庞大的表信息无法实现在一个jsp页面中预览,分页显示势在必行。本程序主要实现分页预览jsp页中查询数据分页显示功能:
<%
String sql=null;
ResultSet rs=null;
int PageSize=5;
int Page=1;
int totalPage=1;
int totalRecord=0;
Connection Connet();
Statement ateStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//算出总行数tatalRecord
sql="select count(*) as recordcount from student";
uteQuery(sql);
()) Int("recordcount");
System.out.println(totalRecord);
//算出总页数totalPage
if(totalRecord%PageSize==0) totalPage=totalRecord/PageSize;
else totalPage=(int)Math.floor(totalRecord/PageSize)+1;//最后还空余一页情况,Math.floor(x):x小的最大值。
if(totalPage==0) totalPage=1;//数据库中一条数据也没有的处理情况;
//捕捉form表单提交的Page元素
Parameter("Page")==null||Parameter("Page")=="") Page=1;
else try{
Page=Integer.Parameter("Page"));
}catch(java.lang.NumberFormatException e){
Page=1;
}
//如果Page非常规数值处理
if(Page>totalPage) Page=totalPage;
if(Page<1) Page=1;
sql="select * from student";
uteQuery(sql);
rs.absolute((Page-1)*PageSize+1);
ResultSetMetaData MetaData();
int ColumnCount();//得到表头有多少列
out.println("<table border=’1>");
//输出表头信息
out.println("<tr>");
for(int i=1;i<col+1;i++)
{
out.println("<td>");
out.print("列名:");
out.ColumnName(i)+"<br>");
out.print("类型:");
out.print(ColumnType(i)));//检索并返回指定列的sql类型
out.println("</td>");
}
out.println("<td>更改</td>");
out.println("<td>删除</td>");
out.println("</tr>");
for(int iPage=1;iPage<PageSize+1;iPage++)
{
out.print("<tr><td>"+rs.getString(1)+"</td>");
out.print("<td>"+rs.getString(2)+"</td>");
out.print("<td>"+rs.getString(3)+"</td>");
out.print("<td>"+rs.getString(4)+"</td>");
out.print("<td>"+rs.getString(5)+"</td>");
out.print("<td>"+rs.getString(6)+"</td>");
out.print("<td><a href=\"change.jsp?Xuehao="+rs.getString(1)+"\">修改</a></td>");
out.print("<td><a href=\"del.jsp?Xuehao="+rs.getString(1)+"\">删除</a></td>");
if(!rs.next()) break;
}
out.println("</table>");
stmt.close();
con.close();
%>