分页技术实现
在开发网站的项目中难免会遇到各种各样的分页操作,分页的方法多种多样,现在将我在项目开发中的使用到的通用分页技术(既可以使用在jsp中,也可以使用在servlet,struts中,使用于多种数据库)分享给大家,供参考;
首先:在数据库操作的类中准备两个方法,一个是查询数据的方法,一个是获取总页数的方法
1)数据查询方法:
public List<StudentBean> getPage_student(int currentPage, int pageSize) {
List<StudentBean> list = new ArrayList<StudentBean>();
String sql = "select * from student where 1=1";
try {
int beginrow = pageSize * (currentPage - 1);// 开始的位置
int endrow = currentPage * pageSize;// 终止的位置
int currentNum = 0;// 经历的行数
conn = db.getConnection();//获取数据库连接
pstmt = conn.prepareStatement(sql);//执行sq语句
rs = pstmt.executeQuery();
while (rs.next()) {
if (currentNum >= beginrow && currentNum < endrow) {
StudentBean student = new StudentBean();//实例化一个实体类
student.setId(rs.getInt("id"));
student.setAge(rs.getInt("age"));
student.setName(rs.getString("name"));
student.setSex(rs.getString("sex"));
student.setAddress(rs.getString("address"));
list.add(student);
if(currentNum == endrow - 1)
break;
}
currentNum ++;
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
2)获取分页的总页数:
public int getPageSize(int count){//获取总的页数
int total = 0;
String sql = "select count(*) from student";
try{
conn = db.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
int records = rs.getInt(1);
if(records%count==0){
total = records / count;
}else{
total = records / count + 1;
}
}
}catch(Exception ex){
ex.printStackTrace();
}
return total;
}
以上工作完成以后,在准备一个分页功能的逻辑功能方法 (通常放在util包中)
public class PageInfo {
private int total;//总页数
private int curpage;//当前页
private int count;//每页显示记录数
private List<StudentBean> list;//接受数据库操作的方法返回的数组
private StudentDAO dao = new StudentDAO();//实例化数据库操作的类
public List<StudentBean> getList(){
list = dao.getPage_student(curpage,count);//开始进行分页
return list;
}
public PageInfo(int curpage){
this.curpage = curpage;
}
public void setTotal(){
this.total = dao.getPageSize(count);//得到总的页数
}
public int getTotal(){
return this.total;
}
public void setCurpage(int curpage){
this.curpage = curpage;
}
public int getCurpage(){
return this.curpage;
}
public void setCount(int count){
this.count = count;
}
public int getCount(){
return this.count;
}
至此,准备工作已经全部完成,下面在jsp页面中做分页演示
pageSize.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="com.gb.util.PageInfo"%>
<%@page import="com.gb.entity.StudentBean"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>分页功能的实现</title>
<%
int currentPage = 1;//开始默认第一页
String c = request.getParameter("currentPage");//获取当前页
if(c!=null && !c.equals("")){
currentPage = Integer.parseInt(c);
}
PageInfo infos = new PageInfo(currentPage);
infos.setCurpage(currentPage);
infos.setCount(2);//每一页显示的页数
infos.setTotal();
%>
</head><body><center>
<h1>学生信息</h1>
<table width="50%">
<tr>
<td>学号</td>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
<td>地址</td>
</tr>
<%
List<StudentBean> list = infos.getList();
for(int i=0;i<list.size();i++){
StudentBean bean = (StudentBean)(infos.getList()).get(i);
%>
<tr>
<td><%=bean.getId() %></td>
<td><%=bean.getName() %></td>
<td><%=bean.getAge() %></td>
<td><%=bean.getSex() %></td>
<td><%=bean.getAddress()%></td>
</tr>
<% }%>
<tr>
<td colspan="5" align="center">
<a href="pageSize.jsp?currentPage=1">首页</a>
<%
int counts = infos.getTotal();
for(int i=0;i<counts;i++){
%>
<a href="pageSize.jsp?currentPage=<%=i+1%>"><%=i+1%></a>
<%} %>
<%
int countes = infos.getTotal();
%>
<a href="pageSize.jsp?currentPage=<%=countes%>">尾页</a>
</td>
</tr>
</table>
</center>
</body>
</html>
以上就是分页技术的实现,即供参考
分享到:
相关推荐
本经典JSP分页实例主要涉及到以下几个核心概念和技术: 1. **分页实体类(Pagination)**:这是实现分页功能的基础,它封装了与分页相关的属性和方法。在这个例子中,Pagination类包含了如总页数(totalPage)、...
本文将深入探讨"jsp分页实例",并解析如何实现一个基本的分页系统,同时提供"分页控件"的使用说明。 首先,我们了解JSP分页的基本原理。分页通常涉及到两个主要部分:前端展示和后端逻辑。前端负责展示页面链接,...
总的来说,这个JSP分页实例代码展示了如何结合后端处理和前端展示来实现一个基本的分页功能,涉及到数据库操作、页面逻辑控制和用户界面元素。对于初学者来说,这是一个很好的实践项目,可以帮助理解Web开发中的数据...
JSP分页可以帮助用户更有效地浏览和管理信息,避免一次性加载过多数据导致页面响应慢或者内存压力过大。本文将详细介绍JSP分页的实现方法及其关键知识点。 首先,我们需要理解分页的基本原理。分页通常涉及到两个...
### JSON 实现 JSP 分页实例介绍 #### 一、引言 随着Web应用的发展,分页技术成为了处理大量数据时不可或缺的一部分。JSON作为一种轻量级的数据交换格式,在Web前端与后端之间的数据传递中扮演着重要角色。本文将...
本人用struts+hibernate写的分页,有详细的注解,方便新手学习,在jsp中实现首页下一页上一页末页功能.index.jsp控制showlist.jsp页面中每页显示的信息条数,本实例在xp+tomcat5.5验证通过.数据库使用的sql2000中的pubs...
描述中提到,这是一个完整的JSP分页实例,涵盖了CRUD(创建、读取、更新、删除)操作,意味着这个项目不仅处理了数据展示,还可能包括了对数据库的交互。分页功能的实现基于DisplayTag,这个组件提供了丰富的定制...
### JSP分页技术详解 #### 一、引言 JSP(JavaServer Pages)是一种基于Java技术的服务器端脚本语言,它被广泛...本文通过对一个具体的JSP分页实例进行解析,详细介绍了其实现方法及关键步骤,希望对读者有所帮助。
在JSP分页实例中,JDBC用于与数据库进行交互,例如执行SQL查询以获取指定页码的数据,以及计算总记录数来确定总页数。开发者可能会使用PreparedStatement来防止SQL注入,并通过ResultSet来处理查询结果。 【WEB】 ...
本实例将介绍如何利用Java和JSP实现一个简单的分页显示功能。 首先,我们需要理解分页的基本原理。分页通常涉及到两个关键参数:当前页码(currentPage)和每页显示的条目数量(pageSize)。通过这两个参数,我们...
在分页实例中,我们需要显示当前页码、总页数,以及上一页和下一页的链接。可以使用JSP的内置对象如`request`、`session`或`application`来传递从后端获取的分页参数,例如当前页码(currentPage)、总页数...
本示例是一个可运行的JSP分页实例,只需简单调整与数据库连接的部分,即可应用于实际项目。 **1. JSP(JavaServer Pages)基础** JSP是Java的一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而...
**JSP分页显示技术详解** 在Web开发中,数据量较大的时候,通常需要采用分页的方式来展示数据,以提高用户体验并减轻服务器负担。JSP(JavaServer Pages)作为Java平台上的动态网页技术,提供了丰富的功能来实现这...
在"分页的实现.rtf"文件中,可能包含了一个具体的JSP分页实现案例,包括SQL查询、Servlet处理逻辑以及JSP页面的代码片段,通过阅读和理解这个案例,可以加深对JSP分页实现的理解。 总结,JSP分页实现是一个涉及到...
**三、JSP分页实例** 在JSP中,可以使用Java脚本let或scriptlet来处理上述逻辑。以下是一个简单的示例: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> int pageSize = 10; // 每页记录数 int pageNum = ...
"jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页"这个压缩包显然包含了一套完整的 JSP 分页解决方案。下面我们将详细探讨 JSP 实现分页的相关知识点。 1. **JSP基本概念**: JSP 是一种基于 Java 的服务器端脚本语言...
以下是一个简单的JSP分页实例: ```jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- 获取请求参数 --> ${param.page}" default="1" /> <!-- 计算每页显示的条数和总页数 --> ${...