`
hugang357
  • 浏览: 188480 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

JSP中实现像Google和百度一样的分页效果

    博客分类:
  • jsp
阅读更多

百度和Google的分页效果非常好,本文就介绍了具体的实现效果。像百度一样的jsp分页效果,像goolge一样的分页效果! 根据设定参数一次取一页记录内容显示处:

<%@ page language="java" pageEncoding="GB2312"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <base href="<%=basePath%>">

        <title>仿BAIDU & GOOGLE 分页页码显示格式</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <style>
        <!--
            body{
                .p{
                    PADDING-LEFT: 18px; FONT-SIZE: 14px; WORD-SPACING: 4px
                }
            }
        -->
        </style>
    </head>

    <body>
        <div class="p">
            <%
                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 stmt = null;
                //String strSql = "select * from usertable limit recordbegin,pagesize";//取出分页记录,SQL因数据库而异!
                //stmt = conn.prepareStatement(strSql);
                //ResultSet rs = stmt.executeQuery();
                //while(rs.next())){
                //    response.getWriter().println(""+rs.getString("userId")+"<br>");//显示取出的数据
                //}
                for (int i = recordbegin; i < recordend; i++) {
                    response.getWriter().println("record " + i + "<br>");
                }

                //显示数据部分

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

分享到:
评论

相关推荐

    JSP实现百度谷歌分页页码功能源代码

    本示例聚焦于使用JSP(Java Server Pages)来实现类似百度和谷歌的分页功能。下面将详细解释如何通过JSP来创建这种功能,以及涉及到的关键知识点。 首先,我们要理解JSP的基础。JSP是一种基于Java的服务器端脚本...

    JSP实现类似百度,google的分页

    在网页开发中,分页是一种常见的用户界面设计,它用于将大量数据分割成多个小块,以便用户可以逐步浏览和处理。在这个主题中,我们将深入...通过熟练掌握这些知识点,你可以构建出像百度和Google一样高效的分页系统。

    jsp仿百度、谷歌分页解决分页太多,始终显示一部分的页码

    本文将深入探讨如何使用JavaScript和jQuery实现一个类似百度、谷歌的智能分页解决方案,解决分页数量过多导致用户界面拥挤的问题。 首先,我们需要理解分页的基本原理。分页通常涉及到两个关键参数:每页显示的条目...

    jsp+servlet+oracle模仿百度分页

    带学员课上做的oracle模仿百度分页样式的例子。比较适合初学者参考,jdbc工具类是自己写的,没有使用第三方分页组件。tomcat是apache-tomcat-7.0.41,myeclipse是MyEclipse 9.0,oracle是11g。例子中用的是海量数据...

    类似淘宝 百度 谷歌的通用分页

    在IT行业中,分页是一种非常常见的数据展示技术,尤其在大型网站如淘宝、百度和谷歌等上,分页是必不可少的功能。它使得大量数据能够有序、高效地展示给用户,提高用户体验并减轻服务器压力。本知识点主要围绕“类似...

    JAVA分页完美解决方案修订版

    JAVA分页是个经典问题,本人从网上搜集资料,并通过编程,较为完美地决地了这个问题,浏览、增加、删除、...可以满足所有的分页要求,在JSP文件中调用这两个TAG既可完成分页任务。页码格式类似百度和谷歌,比较标准。

    JAVA分页完美解决方案

    我的方案是用两个TAG完成分页显示数据和页码,一个TAG(displaytag)专门显示数据,一个TAG(PagesSearchTag.java)专门显示页码,可以满足所有的分页要求,在JSP文件中调用这两个TAG既可完成分页任务。页码格式类似...

    pager-taglib-2.0.war

    在JSP页面中,你可以像使用普通HTML标签一样使用分页标签,通过传入必要的参数(如当前页数、总页数、每页记录数等)来生成分页链接。 总的来说,"pager-taglib-2.0" 提供了一套完整的分页解决方案,不仅简化了开发...

    pager-taglib-2.0.rar

    "pager-taglib-2.0" 是一个专为此目的设计的实用分页标记库,它能够帮助开发者快速构建出类似Google、Yahoo等知名网站的高质量分页效果。 **什么是Taglib** Taglib,全称JSP Tag Library,是JavaServer Pages(JSP...

    div嵌套html不用iframe

    在网页设计和开发中,有时候我们需要在不使用`...通过以上步骤和知识点,我们可以在不使用`iframe`的情况下,利用`div`和jQuery实现页面内容的嵌套,这不仅可以提高网页性能,还能更好地控制和定制页面的显示效果。

    黑马程序员安卓Android52期培训课

    2014/12/24 星期三 jsp/EL表达式/EL函数 2014/12/25 星期四 2014/12/26 星期五 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例 2014/12/27 星期六 编码实战演练(指导老师:) 2014/12/28 星期日 mysql...

Global site tag (gtag.js) - Google Analytics