一个分页的类及调用的例子

  //PageCt.java 分页的类

  /*

  ***  @version        ***********

  ***  Created on 2001年6月25日, 下午14:41

  **************************************

  */

  package vod;

  import java.sql.*;

  import java.util.*;

  public class PageCt

  {

  private long l_start;   //开始纪录

  private long l_end;     //结束纪录

  private long l_curpage; //当前页数

  private long l_totalnum;//总记录数

  private int int_num=5;  //每页10条

  private long l_totalpage; //总的页数

  public void Init(long currentpage,long totalnum)

  {

  l_curpage = currentpage;

  l_totalnum = totalnum;

  if (currentpage>=0)

  {

  if (currentpage>=(long)Math.ceil((double)l_totalnum/(double)int_num))

  l_curpage = (long)Math.floor((double)l_totalnum/(double)int_num);

  else

  l_curpage = currentpage;

  }

  else

  {

  l_curpage = 0;

  }

  l_start = l_curpage * int_num;

  l_end   = l_start + int_num;

  if (l_end > l_totalnum)

  l_end = l_totalnum;

  l_totalpage = (long)Math.ceil((double)l_totalnum/(double)int_num);

  }

  public long getCurpage()

  {

  return l_curpage;

  }

  public long getPrepage()

  {

  if (l_curpage-1>=0)

  {

  return l_curpage-1;

  }

  else

  {

  return 0;

  }

  }

  public long getNextpage()

  {

  if (l_curpage+1<=l_totalpage)

  {

  return l_curpage+1;

  }

  else

  {

  return l_totalpage;

  }

  }

  public long getTotalnum()

  {

  return l_totalnum;

  }

  public long getTotalpage()

  {

  return l_totalpage;

  }

  public long getStart()

  {

  return l_start;

  }

  public long getEnd()

  {

  return l_end;

  }

  };

  ===============================================

  //调用例子

  <%

  /*

  ***  @author  马毅   ***********

  ***  @version        ***********

  ***  Created on 2001年6月12日, 下午17:13

  **************************************

  */

  <%@ page import="java.sql.*"%>

  <%@ page import="java.lang.*"%>

  <%@ page contentType="text/html;charset=gb2312" %>

  <jsp:useBean id="PageCount" scope="page" class="kstest.PageCt" />

  <jsp:useBean id="sqlbean" scope="page" class="vod.sql_data" />

  <html>

  <head>

  <TITLE>测试</TITLE>

  <STYLE>

  body,table{font-size:9pt}

  A:link {

  COLOR: #000084; TEXT-DECORATION: none

  }

  A:visited {

  COLOR: #000084; TEXT-DECORATION: none

  }

  A:hover {

  COLOR: black; TEXT-DECORATION: underline

  }

  .ourfont {

  FONT-SIZE: 9pt

  }

  </STYLE>

  </head>

  <body bgcolor=#eff3ff>

  <center>

  <font color=#000084><h3>Test for Test</h3></font>

  <hr width=600 color=#b5dbff>

  <br>

  <%

  ResultSet rs0 = sqlbean.executeQuery("select count(*) from UserList );

  rs0.next();

  long data_num=rs0.getLong(1);

  long Current_Page = 0;

  String currentpage=(String)request.getParameter("currentpage");

  if (currentpage != null && !currentpage.equals(""))

  {

  Current_Page = Integer.parseInt(request.getParameter("currentpage"));

  }

  String Query_Page=(String)request.getParameter("Query_Page");

  if (Query_Page!=null && !Query_Page.equals(""))

  {

  Current_Page = Integer.parseInt(request.getParameter("Query_Page"))-1;

  }

  PageCt.Init(Current_Page,data_num);

  long l_start = PageCt.getStart();

  long l_end = PageCt.getEnd();

  //查询记录

  ResultSet rs = sqlbean.executeQuery("select * from UserList " );

  long i=0;

  while((i<l_start) && rs.next())

  {

  i++;

  }

  //输出查询结果

  long j=0;

  while(rs.next() && (i<l_end))

  {

  j=i+1;

  String col2 = rs.getString(2);

  String col3 = rs.getString(3);

  String col4 = rs.getString(4);

  String col5 = rs.getString(5);

  String col6 = rs.getString(6);

  String col7 = rs.getString(7);

  String col8 = rs.getString(8);

  //打印所显示的数据

  out.println("<table border=0 width=600>");

  out.println("<tr><td colspan=2><font color=#000084>" + j + "、"+(col2==null?"":col2)+"</font></td></tr><tr><td colspan=2>答案:"+(col3==null?"":col3)+"</td></tr>");

  out.println("<tr><td>  选项1:"+(col4==null?"":col4)+"</td><td>  选项2:"+(col5==null?"":col5)+"</td></tr>");

  out.println("<tr><td>  选项3:"+(col6==null?"":col6)+"</td><td>  选项4:"+(col7==null?"":col7)+"</td></tr>");

  if (col8!=null && !col8.equals(""))

  {

  out.println("<tr><td colspan=2>备注:"+col8+"</td></tr>");

  }

  out.println("</table><br>");

  i++;

  }

  %>

  <table  width=600>

  <tr bgcolor=#b5dbff>

  <form method=GET action=index.jsp>

  <td width=80 align=center valign=bottom>共 <%=PageCt.getTotalnum()%> 条</td>

  <td width=80 align=center valign=bottom><%=PageCt.getCurpage()+1%>/<%=PageCt.getTotalpage()%> 页</td>

  <td width=120 align=center>查看第 <input type=text name=Query_Page size=3> 页</td>

  <td width=50 align=center valign=bottom><a href=index.jsp?currentpage=<%=PageCt.getPrepage()%>>上页</a></td>

  <td width=50 align=center valign=bottom><a href=index.jsp?currentpage=<%=PageCt.getNextpage()%>>下页</a>

  </td>

  </tr>

  </table>

  <br><br><br>

  <table cellspacing=20>

  <tr>

  <td>问题包含<input type=text name=question_str size=10 value=<% if (question_str != null) out.println(question_str); %> ></td>

  <td>答案包含<input type=text name=answer_str size=10 value=<% if (answer_str != null) out.println(answer_str); %> ></td>

  <td>选项包含<input type=text name=sel_str size=10 value=<% if (sel != null) out.println(sel); %> ></td>

  </tr>

  <tr>

  <td colspan=3 align=center><input type=submit value=查询></td>

  </tr>

  </form>

  </table>

  <br><br>

  <a href="insert.jsp">添加</a>

  <center>

  </body>

  </html>