JR 精品文章 - 仿BAIDU?&?GOOGLE?分页页码显示格式

来源:百度文库 编辑:神马文学网 时间:2024/07/04 17:36:54
仿BAIDU & GOOGLE 分页页码显示格式 rdhj5566 整理   更新:2008-12-15 14:23:42  版本: 1.0   
<%@ page language="java" pageEncoding="GB2312"%>
<%@ page import="java.sql.*" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>




">

仿BAIDU & GOOGLE 分页页码显示格式










<%


        //转载请保留以下信息,谢谢!
        //by tolys
        //本文出处: http://blog.csdn.net/tolys/archive/2007/10/06/1813197.aspx    
                int pagesize = 10;//每页显示记录数
                int liststep = 20;//最多显示分页页数
                int pages = 1;//默认显示第一页
                if (request.getParameter("pages") != null)  {
                    pages = Integer.parseInt(request.getParameter("pages"));//分页页码变量
                }
                //sql="select count(*) from table";//取出记录总数,把*换成记录名性能更加
                int count = 305;//假设取出记录总数
                int pagescount = (int) Math.ceil((double) count / pagesize);//求总页数,ceil(num)取整不小于num
                if (pagescount < pages)  {
                    pages = pagescount;//如果分页变量大总页数,则将分页变量设计为总页数
                }
                if (pages < 1)  {
                    pages = 1;//如果分页变量小于1,则将分页变量设为1
                }
                int listbegin = (pages - (int) Math.ceil((double) liststep / 2));//从第几页开始显示分页信息
                if (listbegin < 1)  {
                    listbegin = 1;
                }
                int listend = pages + liststep/2;//分页信息显示到第几页
                if (listend > pagescount)  {
                    listend = pagescount + 1;
                }

                //显示数据部分
                int recordbegin = (pages - 1) * pagesize;//起始记录
                int recordend = 0;
                recordend = recordbegin + pagesize;
                //最后一页记录显示处理
                if (pages == pagescount)  {
                    recordend = (int) (recordbegin + pagesize * (count % pagesize) * 0.1);
                }
               
            Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String strsql = "select top "+pagesize+ " * from    (select top "+recordbegin+" * from tables order by aml_id) aa    order by aml_id desc";
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        conn = DriverManager.getConnection("jdbc:microsoft:", "", "");
        pstmt = conn.prepareStatement(strsql);
        rs = pstmt.executeQuery();
        while(rs.next()){
                      response.getWriter().println("AML_ID: "+rs.getString(1)+" ");//显示取出的数据
                      response.getWriter().println("AML_ID: "+rs.getString(4)+"
");//显示取出的数据
        }
            
          
             //   for (int i = recordbegin; i < recordend; i++)  {
              //      response.getWriter().println("record " + i + "
");
              //  }

                //显示数据部分

                //<显示分页信息
                //<显示上一页
                if (pages > 1)  {
                    response.getWriter().println(
                    "上一页");
                }//>显示上一页
                //<显示分页码
                for (int i = listbegin; i < listend; i++)  {
                    if (i != pages)  {//如果i不等于当前页
                        response.getWriter().println(
                        "[" + i + "]");
                    } else  {
                        response.getWriter().println("[" + i + "]");
                    }
                }//显示分页码>
                //<显示下一页
                if (pages != pagescount)  {
                    response.getWriter().println(
                    "下一页");
                }//>显示下一页
                //>显示分页信息
        rs.close();
        pstmt.close();
        conn.close();
            %>