从数据库获得数据就不写了,直接写如何进行分页,为了方便,把方法和实体类都写到一个java文件里面了

这只是一种简单的分页方法,肯能会有比较多的bug

这是java里的构造实体类和方法,

 public class PageUtilServices {

          private int pageSize;//每页显示的条数
private int recordCount;//总共的条数
private int currentPage;//当前页面
//构造方法
public PageUtilServices(int pageSize, int recordCount, int currentPage) {
super();
this.pageSize = pageSize;
this.recordCount = recordCount;
this.currentPage = currentPage;
}
public PageUtilServices() {
super();
} //总页数
public int getPageCount() {
int size = recordCount/pageSize;//总条数/每页显示的条数=总页数
int mod = recordCount % pageSize;//最后一页的条数
if(mod != 0)
size++;
return recordCount == 0 ? 1 : size;
}
//当前页的起始索引为0
public int getFromIndex() {
return (currentPage-1) * pageSize;
}
//当前页应展示的最后索引
public int getToIndex() {
return Math.min(recordCount, currentPage * pageSize);
} public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) { this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getRecordCount() {
return recordCount;
}
public void setRecordCount(int recordCount) {
this.recordCount = recordCount;
}
}

这是jsp界面

<style type="text/css">
table{
margin: 0 auto;
border-collapse:collapse;
border-color: #666;
}
.lowstore{
color:red;
}
td{
text-align: center;
}
</style>
</head> <body>
<table border="1px">
<% BookInfoDao dao = new BookInfoDao();
List<Books> bookList = dao.showBooks();
String pageStr = request.getParameter("page");
int currentPage = 1;
if (pageStr==null){
currentPage = 1;
}else if(Integer.parseInt(pageStr)<=0){
currentPage = 1;
}else if(Integer.parseInt(pageStr)>bookList.size()/3){
currentPage =bookList.size()/3+1;
}else{
currentPage=Integer.parseInt(pageStr);
}
PageUtilServices pUtil = new PageUtilServices(3, bookList.size(), currentPage);
currentPage = pUtil.getCurrentPage(); BookInfoDao bd=new BookInfoDao();
//ArrayList<Books> books=bd.showBooks(); if(bookList.isEmpty()==false){ %> <tr bgcolor="#eeeeee" colspan=13 align="center" >
<td>编号</td>
<td>名称</td>
<td>作者</td>
<td>价格</td>
<td>发布日期</td>
<td>库存</td>
<td>操作</td>
<td>修改</td>
<td>入库</td>
<td>出库</td>
<td>评论</td>
<td>查看评论</td>
<td>购买图书</td>
</tr>
<% SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
//ArrayList<Books> bookList=bd.showBooks();
%>
<a href="addbooks.jsp">添加图书</a><br/>
<a href="searchbook.jsp">查找图书</a><br/>
<a href="userlist.jsp?id=3">查看用户</a><br/>
<a href="login.jsp">返回登录</a> <%
for (int i = pUtil.getFromIndex(); i < pUtil.getToIndex(); i++) {
Books book = bookList.get(i); %>
<tr class=<%=bookList.get(i).getReserve()<10?"lowstore":""%>>
<td><%=bookList.get(i).getBookId() %></td>
<td><%=bookList.get(i).getBookName() %></td>
<td><%=bookList.get(i).getAuther() %></td>
<td><%=bookList.get(i).getPrice() %></td>
<td><%=sf.format(bookList.get(i).getBookTime()) %></td>
<td><%=bookList.get(i).getReserve() %></td>
<td><a href="servlet/do_bookdelServlet?id=<%=bookList.get(i).getBookId() %>">删除</a></td>
<td><a href="servlet/do_updatebookServlet?id=<%=bookList.get(i).getBookId() %>">修改</a></td>
<td><a href="servlet/do_inbooksServlet?id=<%=bookList.get(i).getBookId() %>">入库</a></td>
<td><a href="servlet/do_outbooksServlet?id=<%=bookList.get(i).getBookId() %>">出库</a></td>
<td><a href="addcomment.jsp?id=<%=bookList.get(i).getBookId() %>">评论</a></td>
<td><a href="servlet/do_showcomServlet?id=<%=bookList.get(i).getBookId() %>">查看评论</a></td>
<td><a href="servlet/do_sellbookServlet?id=<%=bookList.get(i).getBookId() %>">购买</a></td>
</tr>
<% }
}else{
%>
<tr>
<td>对不起,没有图书收录,请添加!</td>
</tr>
<a href="addbooks.jsp">添加</a><br/>
<a href="login.jsp">返回登录</a>
<% }
%>
<tr><td bgcolor="#eeeeee" colspan=13 align="center">
记录总数<%=pUtil.getRecordCount()%>条 当前页/总页数<%=currentPage%>
/<%=pUtil.getPageCount()%> 每页显示<%=pUtil.getPageSize()%>条
<a href="booklist.jsp?page=1">首页</a>
<a href="booklist.jsp?page=<%=(currentPage - 1)%>">上页</a>
<a href="booklist.jsp?page=<%=(currentPage + 1)%>">下页</a>
<a href="booklist.jsp?page=<%=pUtil.getPageCount()%>">末页</a>
</td></tr> </table> </body>

jsp数据显示分页的更多相关文章

  1. jsp+servlet分页查询

    分页查询 减少服务器内存开销 提高用户体验 效果图 思绪图 分页显示Bean文件代码 package cn.ytmj.findlist.domain; import java.util.List; / ...

  2. 用Hibernate和Struts2+jsp实现分页查询、修改删除

    1.首先用get的方法传递一个页数过去 2.通过Struts2跳转到Action 3.通过request接受主页面index传过的页数,此时页数是1, 然后调用service层的方法获取DAO层分页查 ...

  3. JSP实现分页功能

    分页须知知识点: (1)JDBC2.0的可滚动结果集. (2)HTTP GET请求. 一.可滚动结果集   Connection con  = DriverManager.getConnection( ...

  4. javabean+servlet+jsp实现分页

    前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分 ...

  5. Servlet+jsp的分页案例

    查询的分页,在web中经常用到.一般,分页要维护的信息很多,我们把这些相关的信息,分装到一个类中,PageBean.具体如下: package cn.itcast.utils; import java ...

  6. JSP入门 分页

            <div> <%      Integer pageNo = (Integer) request.getAttribute("pageNo");  ...

  7. jsp假分页

    假分页:从数据库中取出所有的数据,然后分页在界面上显示.访问一次数据库,但由于选择的数据量比较大,所以第一次花费时间比较长,但之后每一页的显示都是直接.快速的,避免对数据库的多次访问. 真分页:确定要 ...

  8. JSP页面分页显示数据

    效果如上图所示!最多显示10条:完整jsp和后台代码如下: <%@ page contentType="text/html;charset=UTF-8" %> < ...

  9. JSP的分页技术

    在实际应用中,如果从数据库中查询的记录特别的多,甚至超过了显示屏的显示范围,这个时候可将结果进行分页显示. 假设总记录数为intRowCount,每页显示的数量为inPageSize,总页数为intP ...

随机推荐

  1. tensorflow笔记:使用tf来实现word2vec

    (一) tensorflow笔记:流程,概念和简单代码注释 (二) tensorflow笔记:多层CNN代码分析 (三) tensorflow笔记:多层LSTM代码分析 (四) tensorflow笔 ...

  2. activity启动模式之singleTask

    activity启动模式之singleTask 一.简介 如果另外一个应用调用了C2,C2在栈底,如果这个程序里面再嗲用C1,C3,C2,那么这个C2就是调用onNewIntant的,C1和C3都被销 ...

  3. ubuntu14.04搭建Hadoop2.9.0集群(分布式)环境

    本文进行操作的虚拟机是在伪分布式配置的基础上进行的,具体配置本文不再赘述,请参考本人博文:ubuntu14.04搭建Hadoop2.9.0伪分布式环境 本文主要参考 给力星的博文——Hadoop集群安 ...

  4. 简短的perl程序

    简短的perl程序能够实现大功能.    perl是如何做到的呢?  1. 默认变量     如果没有向函数提供参数值,则默认参数为$_:     如果没有变量用于接收一个表达式的值,则默认接收变量为 ...

  5. 音悦台mv视频下载

    需要获取的页面: 参考了此处,做了修改,代码如下: #coding:utf-8 import urllib2 import urllib import re import sys import os ...

  6. AS3中ASCII码和字符互转函数

    AS3中ASCII码和字符互转函数 字符转成ASCII码: 格式:字符串变量.charCodeAt(字符位置); var str:String = “A”; trace(str.charCodeAt( ...

  7. React 源码剖析系列 - 生命周期的管理艺术

    目前,前端领域中 React 势头正盛,很少能够深入剖析内部实现机制和原理. 本系列文章 希望通过剖析 React 源码,理解其内部的实现原理,知其然更要知其所以然. 对于 React,其组件生命周期 ...

  8. AndroidManifest.xml activity属性设置大全

    1.android:allowTaskReparenting=["true"|"false"] 是否允许activity更换从属的任务,比如从短信息任务切换到浏 ...

  9. S2SH框架中的无刷新验证码功能实现

    暑假期间在实验室做使用S2SH框架的项目,其中登录和注册需要验证码,实现了一个没有实现刷新验证码功能的简单版本,代码如下: 1 package com.sem.action; 2 3 import j ...

  10. TCP服务器端口数,最大连接数以及MaxUserPort的关系辨真

    原文连接:http://www.jianshu.com/p/4a58761d758f 关于TCP服务器最大并发连接数有一种误解就是"因为端口号上限为65535,所以TCP服务器理论上的可承载 ...