<%@ 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实现百度谷歌分页页码功能源代码 让你的网页跟百度实现一样的分页功能! 欢迎到我的博客交流探讨此类问题!
带学员课上做的oracle模仿百度分页样式的例子。比较适合初学者参考,jdbc工具类是自己写的,没有使用第三方分页组件。tomcat是apache-tomcat-7.0.41,myeclipse是MyEclipse 9.0,oracle是11g。例子中用的是海量数据...
有很详细的注释解释,是中国人都应该看的懂,在你需要的分页的页面嵌入这个jsp,通过修改它的默认属性,和使用它的内置方法,就可以达到分页效果,而且可以有自己的样式效果,以下是例子: 你的页面头顶部加入你的文件路径" ...
自己收集的jsp分页代码。对于北大青鸟Y2的学员可能有用吧。自己也在做这个项目。这里有增、删、该、查加分页。有上一页、下一页、首页、尾页、第几页、还有带数字和点的分页。可以说是非常好的分页代码。想要的朋友...
功能:JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle --%> ;charset=8859_1" %> //变量声明 java.sql.Connection sqlCon; //数据库连接对象 java.sql.Statement sqlStmt; //SQL语句对象 ...
JAVA分页是个经典问题,本人从网上搜集资料,并通过编程,较为完美地决地了这个问题,源码已经上传CSDN,值得下载! 我的方案是用两个TAG完成分页显示...页码格式类似百度和谷歌,比较标准, 用户可输入每页显示的行数。
Servlet类中记录当前是第几页。将该页的内容以XML数据格式传递到浏览器中。浏览器读取XML格式中当前的页码。计算上一页和下一页的页码。动态生成显示的内容和更改上一页和下一页的链接中...如此循环及实现分页功能。
当从数据库查出数据过多时,分页条页码太多,将多余部分进行隐藏,永远只显示固定数量的页码
如果不想写分页,在ConnLink.java文件中DBlink()方法可以返回一个Statement对象,然后就可以利用这个返回值去写你想要的代码了),只要建立一个Page对象,调用SelectRS()方法,将SQL语句当前页码和每页要显示的条数...
实现了一个简单分页,使用jsp+servlet+json实现,只是一种最最简单的,适合新手去看,大神勿喷!!!
JAVA分页是个经典问题,本人从网上搜集资料,并通过编程,较为完美地决地了这个问题,浏览、增加、删除、修改、查看、搜索都可以回到原来的页码,源码已经上传CSDN,值得下载!...页码格式类似百度和谷歌,比较标准。
* PageControl, 分页控制, 可以判断总页数和是否有上下页. * * 2008-07-22 加入输出上下分页HTML代码功能 * * @author HX * @version 1.1 2008-9-22 */ public class PageBean { /** 每页显示记录数 */ ...
我的名字叫张帅,我很喜欢JSP。刚刚毕业,还没有找到工作,心里是郁闷的很呀~~~,想在网上找点项目去做,可是网上的大团队都很多,所JSP的项目很难找。 我们欧尚团队一共有四个人。一个美工,三个程序员,曾在东北做...
jsp分页显示数据,可运行,我是用jsp+servlet做的一个项目,数据库用mysql
关于分页的jquery实现
int pageSize;//一页显示的记录数 int totalItem;//记录总数 int totalPage;//总页数 int curPage;//待显示页码 String strPage; int i;... strPage=request.getParameter("page");//获得待显示页码
<%...charset=8859_1″ %><%//变量声明java.sql.Connection sqlCon; //数据库连接对象java.sql.Statement sqlStmt; //SQL语句对象java.sql.ResultSet sqlRst; //结果集对象java.lang.String ...
JSP分页显示技术 在使用数据库显示记录的过程中,一般记录都有很多条。但JDBC的规范对此却没有很好的解决方法。这就需要编程人员自己想办法解决。那么如何实现呢? 基本思路: 首先计算出从数据库中选取的记录总数,...
"[其他类别]分页 QQ菜单 jsp标签_noka3.9.rar" 是一个针对Java服务器页面(JSP)开发人员的源码资料包。这个压缩文件包含了多个有关实现分页功能的JSP代码片段,以及如何集成QQ菜单和各种JSP自定义标签库的示例。...