/**
* <p>Title: 分页算法类</p>
*/
public class Pages {
private int arttotal;
private int pagetotal;
private int curPage;
private int pagesize;
private String pageInfo;
/**
* @return 返回分页结果
*/
public String getPageInfo() {
return pageInfo;
}
/**
* @return 取得文章总数
*/
public int getArttotal() {
return arttotal;
}
/**
* @return 取得当前页数
*/
public int getCurPage() {
return curPage;
}
/**
* @return 文章页数
*/
public int getPagetotal() {
return pagetotal;
}
/**
* @param arttotal 要实现分页的文章总数
* @param curPage 当前页数
* @param pagesize 页面大小
* @param link 每一个页面的链接
*/
public Pages(int arttotal,int curPage,int pagesize,String link) {
this.arttotal = arttotal;
this.curPage = curPage;
this.pagesize = pagesize;
doPages();
pageInfo(link);
}
/**
* 处理分页的基本数据
*/
private void doPages(){
pagetotal = arttotal%pagesize==0?arttotal/pagesize:arttotal/pagesize+1;
if(pagetotal==0){
pagetotal=1;
}
if(curPage<1){
curPage=1;
}else if(curPage>pagetotal){
curPage=pagetotal;
}
}
/** 根据处理的信息,将得到的信息以html的形式体现再页面上。
* @param link 到每一个页面链接的相同部分
*/
private void pageInfo(String link){
StringBuffer sb = new StringBuffer();
if(pagetotal>1){
sb.append("<table class='tab' width='100%' height='100%' cellSpacing=0 cellPadding=0>");
sb.append("<tr><td> 共<b>");
sb.append(pagetotal);
sb.append("</b>页 <b>");
sb.append(arttotal);
sb.append("</b>个记录 当前第<b>");
sb.append(curPage);
sb.append("</b>页 <a href=");
sb.append(link);
sb.append("&curPage=1>");
sb.append("<img src='webapp/images/first.gif' border=0 alt=首页></a>");
sb.append("<a href=");
sb.append(link);
sb.append("&curPage=");
sb.append(curPage>=2?curPage-1:curPage);
sb.append("><img src='webapp/images/previous.gif' border=0 alt=上一页></a> [");
int pagebegin = 1;
int pageend = pagetotal;
if(curPage <= 5 && pagetotal - curPage > 5){
pageend = pagetotal < 10 ? pagetotal : 10;
}else
if(curPage > 5 && pagetotal - curPage > 5) {
pagebegin = curPage - 4;
pageend = curPage + 5;
} else{
if(curPage > 5 && pagetotal - curPage <= 5)
pagebegin = pagetotal < 10 ? 1 : pagetotal - 9;
}
for(int i = pagebegin; i <= pageend; i++){
if(i == curPage){
sb.append("<b>");
sb.append(i);
sb.append("</b> ");
} else{
sb.append(" <a href='");
sb.append(link);
sb.append("&curPage=");
sb.append(i);
sb.append("'>");
sb.append(i);
sb.append("</a> ");
}
}
sb.append("] <a href=");
sb.append(link);
sb.append("&curPage=");
sb.append(curPage<=pagetotal-1?curPage+1:pagetotal);
sb.append(">");
sb.append("<img src='webapp/images/next.gif' border=0 alt=下一页></a>");
sb.append("<a href=");
sb.append(link);
sb.append("&curPage=");
sb.append(pagetotal);
sb.append("><img src='webapp/images/last.gif' border=0 alt=末页></a>");
sb.append("</td></tr>");
sb.append("</table>");
}else{
sb.append(" 共<b>");
sb.append(pagetotal);
sb.append("</b>页 <b>");
sb.append(arttotal);
sb.append("</b>个记录 ");
}
pageInfo = sb.toString();
sb = null;
}
}
分享到:
相关推荐
动态分页算法是数据库系统和Web应用中常用的一种技术,用于高效地处理大量数据并以分页的形式展示给用户。在Java开发中,实现动态分页通常涉及到对数据集的切片操作,以便只加载用户请求的部分数据。下面将详细阐述...
Struts分页算法是Web应用开发中的重要组成部分,特别是在大型数据集展示时,为了提高用户体验,需要将数据分页展示。本算法遵循Model-View-Controller(MVC)设计模式,使得代码结构清晰,易于维护。 在Struts框架...
海量数据库的查询优化及分页算法方案 随着大规模数据库的出现,如何高效地从这些超大容量的数据库中提取数据、分析、统计以及进行数据分页已经成为一个亟待解决的难题。以下我们将探讨如何在有着1000万条数据的MS ...
MySQL 海量数据库的查询优化及分页算法方案 在大规模数据库中,查询优化和分页算法是两个非常重要的方面。本文将详细介绍 MySQL 海量数据库的查询优化和分页算法方案。 一、查询优化 查询优化是指通过调整查询...
这个我人写的一个纯Java版的分页算法,与平台无关性,具有很好的通用性,同时附带完整的工程; 工程使用SQLServer2005,建表脚本在工程下的Setup中,根据你个人的数据库调整资源文件中的配置即可运行;同时这个算法...
本篇将详细探讨分页算法、AspNetPager控件以及相关的SQL分页语句。 首先,我们来了解分页算法。分页算法的核心目标是将数据库中的大量数据分割成若干个小的、可管理的部分,每次只加载一部分到前端展示。常见的分页...
根据提供的标题、描述以及部分代码内容,我们可以总结出以下关于分页算法的知识点: ### 分页算法概述 分页算法是计算机科学中的一个重要概念,在Web开发中尤其常见。它的主要目的是将大量的数据按照一定的规则...
----------=====Java 分页算法 =====------------ 1.Struts+JDBC分页算法 1.1 创建分页控制类(如果使用kevinb.jar可以省略本步) --创建接口Pageable.java --创建实现类PageableResultSet.java 使用以这个实现类来...
### 分页算法在Java中的实现解析 #### 引言 分页是数据处理中的一个常见需求,尤其是在Web应用中,为了提升用户体验和减轻服务器压力,将大量数据分批展示是必要的。本文将深入分析一段Java代码,该代码实现了分页...
在网页开发中,分页算法是一项重要的技术,它使得大量数据可以被有效地组织和呈现,提高了用户体验。结合面向对象编程(OOP)思想,我们可以创建一个分页对象,以简化DAO(数据访问对象)层的代码,使得数据的分页...
在大数据处理领域,分页算法是至关重要的,尤其是在Java编程环境下。当我们在处理大量数据时,一次性加载所有数据到内存可能会导致性能问题甚至内存溢出。因此,分页查询成为了一个有效的解决方案,它允许我们每次只...
### DREAMWEAVER的分页算法ASP #### 背景介绍 Dreamweaver是一款由Adobe公司开发的专业网页设计工具,它可以帮助开发者快速构建、编辑以及管理网站内容。随着互联网的发展,数据量逐渐增大,如何高效地展示大量...
对oracle操作报表,能够对数据进行分裂分页算法
### 高效率Spring+Struts+Hibernate分页算法解析 #### 一、引言 在Web应用程序开发过程中,为了提高用户体验以及系统性能,分页显示数据成为了一项必不可少的功能。本篇文章将详细介绍一种基于Spring、Struts和...
2. 请求分页算法:这些算法决定了当内存中没有空闲页面时,应该选择哪个页面进行淘汰,以便为新的页面腾出空间。 - FIFO(先进先出):最简单的策略,选择最早进入内存的页面进行替换。但这种算法容易导致Belady's ...
Java 分页算法是Java开发中常见的一种数据处理技术,尤其在大数据量的Web应用中,为了提高用户体验,通常会将数据分成多页展示,而不是一次性加载所有数据。这里我们将详细探讨如何实现一个简单的Java分页算法。 ...