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

JSP仿百度分页,谷歌分页页码处理

阅读更多
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>  

<%@ page import="dao.*"%>  

<%@ page import="bean.*"%>  

<html>  

    <head>  

    </head>  

    <body>  

        <%  

            int pagesize = 10;//每页显示记录数  

            int liststep = 10;//最多显示分页页数  

            int pages = 1;//默认显示第一页  

            if (request.getParameter("pages") != null) {  

                pages = Integer.parseInt(request.getParameter("pages"));//分页页码变量  

            }  

          int count = PageDao.getmaxpagecount();//假设取出记录总数  

            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) { //当前页-(总显示的页列表数/2)  

                listbegin = 1;  

            }  

            int listend = pages + liststep / 2;//分页信息显示到第几页//当前页+(总显示的页列表数/2)  

            if (listend > pagescount) {   

                listend = pagescount + 1;  

            }  

        %>  



        <table align="center">  



            <tr>  

                <th>  

                    图书编号  

                </th>  

                <th>  

                    图书名称  

                </th>  

                <th>  

                    出版社  

                </th>  

                <th>  

                    作者  

                </th>  

                <th>  

                    价格  

                </th>  

            </tr>  

            <%  

                List<Book> list = PageDao.getAllPageInfo(pages);  

                Iterator<Book> it = list.iterator();  

                while (it.hasNext()) {  

                    Book b = it.next();  

                    if (b.getId() % 2 == 0) {  

                        out.println("<tr bgcolor='blue'>");  

                    } else {  

                        out.println("<tr bgcolor='red'>");  

                    }  

            %>  

            <td><%=b.getId()%></td>   

            <td><%=b.getBookname()%></td>  

            <td><%=b.getBookpublish()%></td>  

            <td><%=b.getBookauthor()%></td>  

            <td><%=b.getBookprice()%></td>  

            <%  

                out.println("<tr bgcolor='red'>");  

                }  

            %>  

        </table>  

        <table align="center">  

            <tr>  

              <%  

                    //<显示分页信息  

                    //<显示上一页  

                    if (pages > 1) {  

                        out.println("<td><a href=?pages=" + (pages - 1)  

                                + ">上一页</a></td>");  

                    }//>显示上一页   

                    //<显示分页码  

                 for (int i = listbegin; i < listend; i++) {  

                        if (i != pages) {//如果i不等于当前页  

                            out.println("<td><a href=?pages=" + i + ">[" + i  

                                    + "]</a></td>");  

                        } else {  

                            out.println("<td>[" + i + "]</td>");  

                        }  

                    }//显示分页码>  

                    //<显示下一页  

                    if (pages != pagescount) {  

                        out.println("<td><a href=?pages=" + (pages + 1)  

                                + ">下一页</a></td>");  

                    }//>显示下一页  

                    //>显示分页信息  

                %>  

            </tr>  

        </table>  

    </body>  

</html>

Dao层代码:

package dao;     

import java.sql.*;  

import java.util.ArrayList;  

import java.util.List;  

import bean.Book;  

 

public class PageDao {  

    public static int getmaxpagecount() {  

        int num = 0;  

        Connection conn = null;  

        Statement stm = null;  

        ResultSet rs = null;  

        try {  

            conn = ConnectionManager.getInstances();  

            stm = conn.createStatement();  

            rs = stm.executeQuery("select count(*) from book");  

            if (rs.next()) {  

                num = rs.getInt(1);  

            }  

        } catch (SQLException e) {  

            e.printStackTrace();  

        }  

        return num;  

    }  

 

    public static List<Book> getAllPageInfo(int curpage) {  

        List<Book> list = new ArrayList<Book>();  

        Connection conn = null;  

        Statement stm = null;  

        ResultSet rs = null;  

 

        try {  

            conn = ConnectionManager.getInstances();  

            conn.setAutoCommit(false);  

            stm = conn.createStatement();  

            rs = stm  

                    .executeQuery(("select top 10 * from book where id not in (select top " 

                            + ((curpage - 1) * 10) + " id from book order by id)order by id"));  

            while (rs.next()) {  

                Book b = new Book();  

                b.setId(rs.getInt("id"));  

                b.setBookname(rs.getString("bookname"));  

                b.setBookpublish(rs.getString("bookpublish"));  

                b.setBookauthor(rs.getString("bookauthor"));  

                b.setBookprice(rs.getDouble("bookprice"));  

                list.add(b);  

            }  

           conn.commit();  

        } catch (SQLException e) {  

            e.printStackTrace();  

        } finally {  

            try {  

                rs.close();  

                stm.close();  

                conn.close();  

            } catch (SQLException e) {  

                try {  

                    conn.rollback();  

} catch (SQLException e1) {  

                              e1.printStackTrace();  

                }  

                e.printStackTrace();  

            }  

        }  

        return list;  

    }  





数据库连接代码

package dao;  

import java.sql.*;  

public class ConnectionManager {  

      

    public static final String DRIVER="com.microsoft.jdbc.sqlserver.SQLServerDriver";   

public static final String URL="jdbc:microsoft:sqlserver://127.0.0.1:1433;

databasename=pagination";  

public static final String UID="sa";  

public static final String PWD="112233";          

        public static Connection getInstances(){  

            Connection conn=null;  

              

            try {  

                Class.forName(DRIVER);  

                conn=DriverManager.getConnection(URL,UID,PWD);  

            } catch (ClassNotFoundException e) {  

                    e.printStackTrace();   

              } catch (SQLException e) {  

 

                e.printStackTrace();  

            }  

            return conn;  

        }  



分享到:
评论

相关推荐

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

    百度和谷歌的分页设计巧妙地解决了这个问题,它们只显示一部分页码,并在两端添加省略号,表示存在未显示的页码。这种设计既保留了导航的便利性,又避免了用户界面的混乱。要实现这样的效果,我们需要以下几个步骤:...

    仿百度分页jsp版

    本项目"仿百度分页jsp版"是一个基于Maven构建的Java Web应用,其目标是实现与百度网站类似的分页效果。下面将详细介绍该项目涉及的关键知识点。 首先,**分页** 是网页设计中的一种策略,它将大量数据分割成多个小...

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

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

    java仿百度分页

    Java仿百度分页是一种常见的网页分页实现方式,它的核心思想是通过自定义标签库(JSP Tag Library)和Java后端代码配合,提供一种简洁、高效的分页展示方案。百度分页的设计考虑了用户体验和易用性,使得在大量数据...

    jsp+servlet+oracle模仿百度分页

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

    jsp 分页显示 标签 仿百度那样的分页效果

    标题中的“jsp分页显示标签”指的是JSP中可以使用的特定标签库,如JSTL(JavaServer Pages Standard Tag Library)或自定义标签,来简化分页逻辑的实现。JSTL的`&lt;c:forEach&gt;`标签可以用于循环输出分页按钮,而`...

    JSP实现真分页和假分页

    3. JSP逻辑处理:在JSP页面中,使用Java代码段或自定义标签处理分页逻辑。接收请求参数,计算LIMIT和OFFSET值,然后执行SQL查询。 4. 数据绑定:将查询结果集绑定到JSP页面的表格中。 5. 分页导航:根据总记录数和...

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

    在网页开发中,分页是一种常见的用户...综上所述,实现JSP分页涉及前端界面设计、后端Servlet处理、数据库查询以及用户体验优化等多个方面。通过熟练掌握这些知识点,你可以构建出像百度和Google一样高效的分页系统。

    使用JSP实现查询分页

    本文将深入探讨如何使用JSP(Java Server Pages)来实现查询分页,这是一项在网页开发中频繁遇到且必须掌握的技术。 ### 分页技术的重要性 分页技术主要解决的是当数据量庞大时,一次性加载所有数据到页面会导致...

    JSP通用分页显示1.2.rar_java 分页显示_jsp_jsp 分页_jsp 分页_jsp分页

    **JSP分页显示技术详解** 在Web开发中,数据量较大的时候,通常需要采用分页的方式来展示数据,以提高用户体验并减轻服务器负担。JSP(JavaServer Pages)作为Java平台上的动态网页技术,提供了丰富的功能来实现这...

    jsp +struts 分页经典

    本项目名为“jsp +struts 分页经典”,显然是一个利用这两种技术实现的分页展示数据的案例。下面我们将深入探讨JSP和Struts框架,以及它们在分页、查询和数据操作中的应用。 首先,JSP是Java平台上的动态网页技术,...

    纯JSP实现真分页

    【描述】提到的"程序中只用到了JSP页面,来实现分页查询Oracle数据库",意味着开发者在JSP页面中直接处理了与数据库交互的部分,包括建立数据库连接、执行SQL查询语句以及处理查询结果。通常,这种做法会将业务逻辑...

    jsp页面数据分页通用组件

    **JSP页面数据分页通用组件详解** 在Web开发中,数据分页是常见的功能,尤其是在处理大量数据时,为了提高用户体验和加载速度,通常会将数据分成多个页进行显示。`jsp页面数据分页通用组件`就是这样一个工具,它为...

    仿照百度分页样式的代码

    ### 仿照百度分页样式的代码解析与知识点详解 #### 一、代码背景与应用场景 本代码示例实现了一个类似百度网站分页显示数据的功能。适用于网站开发中需要对大量数据进行分页展示的场景,例如新闻列表、论坛帖子等。...

    JSP分页技术,非常好的的学习Jsp分页技术的教程,适合初学者

    ### JSP分页技术详解:初学者的完美指南 #### 引言 在现代Web开发中,数据展示的效率和用户体验至关重要。对于大型数据库或数据集的处理,一次性加载所有数据不仅消耗大量资源,还可能导致页面加载缓慢,严重影响...

    jsp假分页技术jsp假分页

    - 考虑到用户可能会直接访问特定页码,需要处理缺失参数的情况。 总结,JSP假分页技术是一种简化版的分页实现,适用于数据量较小的情况。然而,当数据量较大时,为了优化性能,推荐采用真分页技术,即在数据库层面...

    模拟百度的JSP分页源代码

    在这个模拟百度的JSP分页项目中,开发者可能还使用了一些最佳实践,比如缓存分页信息,避免频繁的数据库查询;或者使用Ajax实现无刷新分页,提高用户体验。同时,项目可能也涉及到了URL参数设计、错误处理、安全性等...

    jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页

    "jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页"这个压缩包显然包含了一套完整的 JSP 分页解决方案。下面我们将详细探讨 JSP 实现分页的相关知识点。 1. **JSP基本概念**: JSP 是一种基于 Java 的服务器端脚本语言...

    JSP+MySql分页组件

    【JSP+MySQL分页组件】是Web开发中常见的功能,用于处理大量数据时提高页面加载速度和用户体验。在Web应用程序中,一次性加载所有数据可能导致页面响应慢,尤其是在数据库存储的数据量庞大的情况下。分页技术可以...

    jsp+servlet分页

    总结,"jsp+servlet分页"涉及了JSP和Servlet的基础知识,包括JSP的EL和JSTL,Servlet的请求处理,以及数据库查询和数据展示。同时,实际开发中还需要了解如何使用数据库查询语句(如SQL的LIMIT和OFFSET)实现分页,...

Global site tag (gtag.js) - Google Analytics