自己做一个类实现List接口,基本功能委派ArrayList来实现,使用迭代iterator来完成分页的功能。做一个私有inner-class. private class CustomerIterator implements Iterator.

解决方案 »

  1.   

    <%@ page contentType="text/html;charset=gb2312"%>
    <html> 
    <head>
    <title></title>
    </head> 
    <body> 
    <% 
    java.sql.Connection sqlCon; 
    java.sql.Statement sqlStmt; 
    java.sql.ResultSet sqlRst; 
    java.lang.String strCon; 
    java.lang.String strSQL; 
    int intPageSize; 
    int intRowCount; 
    int intPageCount; 
    int intPage; 
    java.lang.String strPage; 
    int i,j,k;  
    intPageSize = 10;  
    strPage = request.getParameter("page"); 
    if(strPage==null){
    intPage = 1; 
    } else{
    intPage = java.lang.Integer.parseInt(strPage); 
    if(intPage<1) intPage = 1; }
    Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); 
    strCon = "jdbc:db2:sample"; 
    sqlCon = java.sql.DriverManager.getConnection(strCon,"",""); 
    sqlStmt = sqlCon.createStatement(); 
    strSQL = "select count(*) from org"; 
    sqlRst = sqlStmt.executeQuery(strSQL); 
    sqlRst.next(); 
    intRowCount = sqlRst.getInt(1); 
    sqlRst.close(); 
    intPageCount = (intRowCount+intPageSize-1) / intPageSize; 
    if(intPage>intPageCount) intPage = intPageCount; 
    strSQL = "select * from org"; 
    sqlRst = sqlStmt.executeQuery(strSQL);
    i = (intPage-1) * intPageSize; 
    for(j=0;j<i;j++) sqlRst.next(); %> 
    <table border="1"> 
    <tr> 
    <td colspan=5 align=center> 
    <%=intPage%>/<%=intPageCount%>
    <%if(intPage != 1){%>
    <a href="pagedb2.jsp?page=1">first</a>
    <%}else{%>
    first
    <%}%>
    <%if(intPage>1){%>
    <a href="pagedb2.jsp?page=<%=intPage-1%>"><<</a>
    <%
    }else{
    %> 
    <<
    <%}%>
    <%if(intPage<intPageCount){%>
    <a href="pagedb2.jsp?page=<%=intPage+1%>">>></a>
    <%
    }else{
    %> 
    >>
    <%}%>
    <%if(intPage != intPageCount){%>
    <a href="pagedb2.jsp?page=<%=intPageCount%>">last</a>
    <%}else{%>
    last
    <%}%>
    all<%=intRowCount%>row
    </td> 
    </tr>
    <tr> 
    <td>deptnumb</td>
    <td>deptname</td>
    <td>manage</td>
    <td>division</td>
    <td>location</td>
    </tr> 
    <% 
    i = 0; 
    while(i<intPageSize && sqlRst.next()){ %> 
    <tr> 
    <td><%=sqlRst.getString(1)%></td>
    <td><%=sqlRst.getString(2)%></td>
    <td><%=sqlRst.getString(3)%></td>
    <td><%=sqlRst.getString(4)%></td>
    <td><%=sqlRst.getString(4)%></td>
    </tr> 
    <% i++; } %>
    </table> 
    <% 
    sqlRst.close(); 
    sqlStmt.close(); 
    sqlCon.close();
    %>
    </body> 
    </html>
      

  2.   

    <%@ page import="java.util.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="com.google.soap.search.*" %><html>
    <%
    String keyword = null;//查询关键词
    String lr = null;//语言限制
    String wide = null;//搜索范围
    int max = 10; int total = 0;//返回的记录数
    int counts = 10;//每页显示记录数
    int currentPage = 1;//当前为第几页
    int pageCounts = 0;//显示页面总数
    int pages = 10;//就一次可以出现10个页让你点击 如 1,2,3,4,5,6,7,8,9,10
    int nextPage = 1;//就是第几个一页;每次的都要保存到 session 中
    int nextPages;//一共有多少个下一页 //得到查询字符串
    if(request.getParameter("keyword") != null)
    {
    keyword = (String)request.getParameter("keyword");
    } //得到查询范围
    if(request.getParameter("search-wide") != null)
    {
    wide = (String)request.getParameter("search-wide");
    }

    //得到总记录数
    if(request.getParameter("total") != null)
    {
    total = Integer.parseInt(request.getParameter("total"));
    }

    //取得当前页面数(当前为第几页)
    if(request.getParameter("page") != null)
    {
    currentPage = Integer.parseInt(request.getParameter("page"));
    } if(request.getParameter("nextPage") != null)
    {
    nextPage = Integer.parseInt((String)request.getParameter("nextPage"));
    }%><head>
    <title>GRI搜索: <%=keyword %></title>
    <style type="text/css">
    <!--
    a:link { color:#00c } a:visited { color:#551a8b } a:active { color:#f00;
    background-color:#ffffcc;} a:hover { color:red;
    text-decoration:underline; }
    p {background-color : #ffbb00; }
    p.indent { margin-left:50px;
    margin-right:50px; }
    -->
    </style>
    </head><body bgcolor=#ffffff>
    <%@ page contentType="text/html;charset=gb2312" %>
    <img align="top" alt="head.jpg" src="Images/head.jpg" />
    <%@ include file="GRI-CENTER.jsp" %>
    <hr width="90%" noshade="noshade" /><jsp:useBean id="google" scope="session" class="javaBean.google.Google" />
    <%
    if(keyword.equals("")){
    %>
    <jsp:forward page="search-index.jsp">
    </jsp:forward>
    <%
    }
    else
    {
    if(wide.equals("chinese"))
    {
    //搜索范围是简体中文
    lr="lang_zh-CN";
    google.setLanguage(lr);
    }
    else if(wide.equals("all-chinese"))
    {
    //搜索范围是全部中文
    lr="lang_zh-CN | lang_zh-TW";
    google.setLanguage(lr);
    }
    else
    {
    //搜索范围是全部网页
    lr=null;
    } google.setStart((currentPage-1)*counts);//设置索引开始位置,currentPage代表第几页,counts代表每页显示记录数
    max = counts;//默认记录数为counts = 10;
    /*
    if(total < currentPage*counts )
    {
    max = total - (currentPage-1)*counts - 1;
    }
    */
    google.setMaxReturnCount(max);//设置索引个数
    google.search(keyword);//设置查询关键词,并进行搜索
    GoogleSearchResult result=google.getGoogleResult();//取得搜索结果

    out.println("<p>");
    out.println("搜索结果共 "+result.getEstimatedTotalResultsCount()+"条!");
    //out.println("<br />");
    out.println("查询关键词: "+result.getSearchQuery());
    //out.println("<br />");
    out.println("查询时间: "+result.getSearchTime());
    out.println("</p>");
    out.println("<br />");
    out.println("---------------检-----索-----结-----果--------------");

    GoogleSearchResultElement[] resultElements = result.getResultElements();

    total = result.getEstimatedTotalResultsCount();//返回总数
    if(total > 1000)
    {
    total = 1000;
    }
    if(total < 1)
    {
    %>
    <jsp:forward page="search-index.jsp">
    </jsp:forward>
    <%
    }
    session.putValue("total",new Integer(total));//保存返回记录总数
    int startIndex = result.getStartIndex() - 1 - (currentPage-1) * counts;  
    int endIndex = result.getEndIndex() - 1 - (currentPage-1) * counts;
    out.println("<table border=\"1\" bordercolor=\"#ff0000\" cellpadding=\"0\" cellspacing=\"0\" >");
    for(int i = startIndex;i <= endIndex; i++)
    {
    if((resultElements[i]) != null)
    {
    out.println("<tr>");
    out.println("<td>");
    out.println("<a href=\""+resultElements[i].getURL()+"\" >");
    out.println(resultElements[i].getURL());
    out.println("</a>");
    out.println("<br />");
    out.println("<p class=\"indent\">");
    out.println("<b>");
    out.println(resultElements[i].getSnippet());
    out.println("</b>");
    out.println("</p>");
    out.println("</td>");
    out.println("</tr>");
    }
    }
    out.println("</table>");
    out.println("<br />");
    out.println("<br />");
    out.println("<br />"); //////////////////*****分页显示******////////////////////////////
    // 得到总的页数;
    pageCounts = (total + counts - 1) / counts;
    //得到有多少个下一页
    nextPages = (pageCounts + pages - 1) / pages;
    //下面主要工作是分页显示
    int t;
    int m = (nextPage-1)*pages+1;//下一页显示的第一个页面连接数,如:31
    int n = nextPage*pages;//下一页显示的最后一个连接数,如:40
    int k;
    if(n > pageCounts)//如果下一个页面显示的页数大于现有的总页数
            {  
    k = pageCounts;//则保留
    }
            else

    k = n;
            } out.print("<center>");
    for(t=m;t<=k;t++)
    {
    if(currentPage == t)
    {
    out.print("<font color='#FF0000'><a href='search.jsp?page=");
    out.print(t);
    out.print("&keyword="+keyword+"&search-wide="+wide+"&total="+total+"&nextPage="+nextPage);
    out.print("'>");
    out.print(t);
    out.print("</a></font>");
    }
    else
    {
    out.print("<a href='search.jsp?page=");
    out.print(t);
    out.print("&keyword="+keyword+"&search-wide="+wide+"&total="+total+"&nextPage="+nextPage);
    out.print("'>");
    out.print(t);
    out.print("</a>");
    }
    out.print("    ");
    }
    if(n < pageCounts)
    {
    out.print("<a href='search.jsp?page=");
    out.print(nextPage*pages+1);
    out.print("&keyword="+keyword+"&search-wide="+wide+"&total="+total+"&nextPage="+(nextPage+1));
    out.print("'>");
    out.print("下一页");
    out.print("</a>");
    }
    if(nextPage != 1)
    {
    out.print("<a href='search.jsp?page=");
    out.print((nextPage-1)*pages+1);
    out.print("&keyword="+keyword+"&search-wide="+wide+"&total="+total+"&nextPage="+(nextPage-1));
    out.print("'>");
    out.print("上一页");
    out.print("</a>");
    }
    out.print("</center>");
    ////////////////////////
    /*
    out.print("<a href='");
    out.print("search.jsp?page=1&keyword="+keyword+"&search-wide="+wide+"&total="+total);
            out.print("'>");
    out.print("1");
    out.print("</a>");
    /////
    out.print("<a href='");
            out.print("search.jsp?page=2&keyword="+keyword+"&search-wide="+wide+"&total="+total);
            out.print("'>");
    out.print("2");
    out.print("</a>");
    */
    ///////////////////////

    }
    %>
    <br />
    <%@ include file="GRI-BOTTOM.jsp" %>
    </body>
    </html>
      

  3.   

    package com.bbs.bean;import java.io.*;
    import java.util.*;public class NoteListBean implements Serializable{private ArrayList noteWriters=new ArrayList();
    private ArrayList noteHitNums=new ArrayList();
    private ArrayList noteIDs=new ArrayList();
    private ArrayList noteTitles=new ArrayList();
    private ArrayList notePics=new ArrayList();
    private ArrayList noteRewriteNums=new ArrayList();
    private ArrayList noteLastTimes=new ArrayList();public NoteListBean(){}public int getLength(){
    return noteIDs.size();
    }
    public void setNoteIDs(String noteID){
    noteIDs.add(noteID);
    }public String getNoteIDs(int i){
    return (String)noteIDs.get(i);
    }public void setNotePics(String notePic){
    notePics.add(notePic);
    }public String getNotePics(int i){
    return (String)notePics.get(i);
    }public void setNoteWriters(String noteWriter){
    noteWriters.add(noteWriter);
    }public String getNoteWriters(int i){
    return (String)noteWriters.get(i);
    }public void setNoteTitles(String noteTitle){
    noteTitles.add(noteTitle);
    }public String getNoteTitles(int i){
    return (String)noteTitles.get(i);
    }public void setNoteRewriteNums(String noteRewriteNum){
    noteRewriteNums.add(noteRewriteNum);
    }public String getNoteRewriteNums(int i){
    return (String)noteRewriteNums.get(i);
    }public void setNoteHitNums(String noteHitNum){
    noteHitNums.add(noteHitNum);
    }public String getNoteHitNums(int i){
    return (String)noteHitNums.get(i);
    }
    public void setNoteLastTimes(String noteLastTime){
    noteLastTimes.add(noteLastTime);
    }public String getNoteLastTimes(int i){
    return (String)noteLastTimes.get(i);
    }}
      

  4.   

    package com.bbs.util;import java.io.*;
    import java.util.*;
    import com.bbs.bean.NoteListBean;public class PageList{private int pageSize=15;
    private int recordCount=0;
    private int pageCount=0;
    private int showPage=1;
    private int pageInt=0;NoteListBean Note=new NoteListBean();
    public int getPageSize(){
    return pageSize;
    }
    public void setRecordCount(int recordCount){
    this.recordCount=recordCount;
    }public int getRecordCount(){
    return recordCount;
    }public void setPageCount(){
    this.pageCount=(recordCount % pageSize==0)?(recordCount/pageSize):(recordCount/pageSize+1);
    }public int getPageCount(){
    return pageCount;
    }public void setShowPage(String page){
    setPageCount();
    if(page!=null){
    this.showPage=Integer.parseInt(page);
    if(this.showPage>pageCount)
    this.showPage=pageCount;
    else if(this.showPage<=0)
    this.showPage=1;
    }else
         this.showPage=1;
    }public int getShowPage(){
    return showPage;
    }public void setPageInt(){
    if(recordCount>0)
    this.pageInt=(showPage-1)*pageSize;
    }public int getPageInt(){
    setPageInt();
    return pageInt;
    }}