JSP中的分页
来源:互联网 发布:男士高档护肤品牌 知乎 编辑:程序博客网 时间:2024/05/16 17:52
参考链接:http://blog.csdn.net/xiazdong/article/details/6857515
参考链接:http://blog.csdn.net/gavin_john/article/details/51335224
思路:
分页关键点:
1、定义四个变量
int pageCount = 1;//表示共有多少页
int pageSize = 3;//指定每页显示3条记录
int pageNow = 1;//当前页
int rowCiunt;//代表共有多少行记录;
2、分页公式:
pageCount = (rowcount-1)/pageSize +1;//表示共有多少页
3、分页语句:
select * from table limit [offset] [size]
offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。
例子:取第11条到第15条数据,共5条
select * from table_name limit 10,5
分段关键点:
比如:有15条记录,每页显示3条数据,共分5页
需求:如何控制我们的超链接只显示3页, 即: << [1] [2] [3] >>
点击 >>时,显示后面的3页,因为此时后面还有两页所以显示剩下的两页。即<<[4][5]>>
点击 <<时,显示前面的3页。即 << [1] [2] [3] >>
思路:
1、要实现上述需求就需要把此时的 [1][2][3][4][5]进行分段,即: [1][2][3]和[4][5]两段。
2、仿照分页思路
定义三个变量:
int yeshuSize=3;//指定每段只显示3页
int jiluduanNow=1;//当前记录段
int jiluduan = 1;//表示共分多少段
分段公式:jiluduan = (pageCount-1)/yeshuSize + 1;
分段显示算法:
段数: 第1段 第2段 第3段 第4段 第5段……
每段的起始页数: 第1页 第4页 第7页 第10页 第13页…3n-2
每段的终止页数: 第3页 第6页 第9页 第12页 第15页…3n
总结:如果以后规定每段显示几页,算法推理过程与此类似。
<%@page import="java.sql.ResultSet"%><%@page import="com.languang.jdbc.DAOImpl_housetable"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%//参考资料:http://blog.csdn.net/xiazdong/article/details/6857515//参考资料://http://blog.csdn.net/gavin_john/article/details/51335224 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>后台添加房源页面</title> <script type="text/javascript"> function gotopage() { var zhengze=/^\d+$/; var zhi = document.getElementById("page"); if(zhengze.test(zhi.value)) { location.href="HouseInfo.jsp?pageNow="+zhi.value; return true; } return false; } </script> </head> <body> <center> <font size="25" color="blue" >公众平台房屋发布管理中心</font> </center> <br/> <%= session.getAttribute("username")%>,欢迎你! <br/> <br/> <table border="2" cellspacing="0" width="100%" > <tr> <td align="center">房产编号</td> <td align="center">房屋类型</td> <td align="center">地址</td> <td align="center">房价<br/>(万)</td> <td align="center">图片地址</td> <td align="center">房屋面积<br/>(平方米)</td> <td align="center">房屋名称</td> <td align="center">房屋城市</td> <td align="center">房屋收藏数</td> <td align="center">发布时间</td> <td align="center">发布帐号</td> <td align="center">操作</td> </tr> <% int pageCount = 1;//表示共有多少页 int pageSize = 3;//指定每页显示3条记录 int pageNow = 1;//当前页 int yeshuSize=3;//指定每次只显示3页 int jiluduanNow=1;//记录段 int jiluduan = 1; if(session.getAttribute("username") != null){ /* 此处为分页全部显示时所用 DAOImpl_housetable di = new DAOImpl_housetable(); ResultSet rs = di.query("select * from housetable"); while(rs.next()){ */ String spageNow = request.getParameter("pageNow"); String sjiluduanNow = request.getParameter("jiluduanNow"); if(spageNow != null) { pageNow = Integer.parseInt(spageNow); } if(sjiluduanNow != null) { jiluduanNow = Integer.parseInt(sjiluduanNow); } DAOImpl_housetable dh = new DAOImpl_housetable(); ResultSet rr = dh.query("select count(*) from housetable"); rr.next(); int rowcount = rr.getInt(1); pageCount = (rowcount-1)/pageSize +1;//表示共有多少页 jiluduan = (pageCount-1)/yeshuSize + 1; //此处处理当前页大于总段与当前段小于1两种特殊情况 if(jiluduanNow<1) { jiluduanNow=1; } if(jiluduanNow>=jiluduan) { jiluduanNow=jiluduan; } //此处处理当前页大于总页与当前页小于1两种特殊情况 if(pageNow<1) { pageNow=1; } if(pageNow>=pageCount) { pageNow=pageCount; } DAOImpl_housetable di = new DAOImpl_housetable(); int num = (pageNow-1)*pageSize; ResultSet rs = di.query("select * from housetable limit "+num+","+pageSize+""); System.out.println("========"+rowcount+"条记录======"+pageCount+"页========"+jiluduan+"段=====第"+jiluduanNow+"段"); while(rs.next()) { int f1 = rs.getInt(1); String f2 = rs.getString(2); String f3 = rs.getString(3); String f4 = rs.getString(4); String f5 = rs.getString(5); String f6 = rs.getString(6); String f7 = rs.getString(7); String f8 = rs.getString(8); int f9 = rs.getInt(9); String f10 = rs.getString(10); String f11 = rs.getString(11); %> <tr> <td align="center"><%=f1 %></td> <td align="center"><%= f2%></td> <td align="center"><%= f3%></td> <td align="center"><%=f4 %></td> <td align="center"><%= f5%></td> <td align="center"><%= f6%></td> <td align="center"><%= f7%></td> <td align="center"><%= f8%></td> <td align="center"><%= f9%></td> <td align="center"><%= f10%></td> <td align="center"><%= f11%></td> <td align="center"><button onclick="{location.href='${pageContext.request.contextPath}/Delete_housetable?houseID=<%= rs.getInt(1)%>'}">删除</button></td> </tr> <%} }else{ %> <a href = "index.html">请您登陆!</a> <% } %> </table> <a href='HouseInfo.jsp?pageNow=1' >首页</a> <% // if(pageNow!=1) 此处为分页全部显示时所用 if(jiluduanNow!=1) { // out.println("<a href='HouseInfo.jsp?pageNow="+(pageNow-1)+"'>上一页</a> "); out.println("<a href='HouseInfo.jsp?jiluduanNow="+(jiluduanNow-1)+"'><<</a> "); } %> <% /* 此处为分页全部显示时所用 for(int i = 1; i <= pageCount;i++) { out.println("<a href='HouseInfo.jsp?pageNow="+i+"'><"+i+"></a>"); } */ if(jiluduanNow <jiluduan) { for(int i = 3*jiluduanNow-2; i <=jiluduanNow*3;i++) { out.println("<a href='HouseInfo.jsp?pageNow="+i+"'><"+i+"></a>"); } } if(jiluduanNow==jiluduan) { if(jiluduanNow*3>=pageCount) { for(int i = 3*jiluduanNow-2; i <=pageCount;i++) { out.println("<a href='HouseInfo.jsp?pageNow="+i+"'><"+i+"></a>"); } } } %> <% // if(pageNow!=pageCount) if(jiluduanNow!=jiluduan) { // out.println("<a href='HouseInfo.jsp?pageNow="+(pageNow+1)+"'>下一页</a> "); out.println("<a href='HouseInfo.jsp?jiluduanNow="+(jiluduanNow+1)+"'>>></a> "); } %> <a href="HouseInfo.jsp?pageNow=<%=pageCount %>" >尾页</a> 第<%=pageNow%>页/共<%=pageCount%>页 跳转到<input type="text" name="page" id="page" style="width:25px"/>页 <input type="button" value="跳" onclick="gotopage()" /> <br/> <button onclick="{location.href='Update.jsp'}">添加房源</button> </body></html>
- jsp中的分页
- Jsp中的分页技巧
- JSP中的分页
- Jsp中的分页显示技术
- 关于jsp中的分页技术
- jsp+MVC分页读取数据库中的数据
- JSP中的分页技术源码(MYSQL数据库)
- jsp中的分页处理模块总结
- jsp分页
- JSP分页
- Jsp分页
- jsp分页
- jsp分页
- JSP分页
- jsp 分页
- jsp分页
- jsp分页
- JSP分页
- lintcode 二叉树总结
- MySQL教程之索引的使用
- 【商城开发八】Fragment篇:生命周期和懒加载
- poj 1752 Advertisement (差分约束)
- 关于研发管理的几点个人见解(-)
- JSP中的分页
- Debian下安装
- 数据库技术发展之路
- 百度地图开发(二) hello word
- IIC设备驱动程序(三)————IIC设备驱动程序的层次结构
- Mysql学习笔记八——子句查询
- Android图形显示系统(一)
- Md5是什么?MD5怎么校验?Md5校验工具怎么用?
- Java 二叉查找(排序)树 创建 以及中序和层序遍历