<%@ 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版"是一个基于Maven构建的Java Web应用,其目标是实现与百度网站类似的分页效果。下面将详细介绍该项目涉及的关键知识点。 首先,**分页** 是网页设计中的一种策略,它将大量数据分割成多个小...
本示例聚焦于使用JSP(Java Server Pages)来实现类似百度和谷歌的分页功能。下面将详细解释如何通过JSP来创建这种功能,以及涉及到的关键知识点。 首先,我们要理解JSP的基础。JSP是一种基于Java的服务器端脚本...
Java仿百度分页是一种常见的网页分页实现方式,它的核心思想是通过自定义标签库(JSP Tag Library)和Java后端代码配合,提供一种简洁、高效的分页展示方案。百度分页的设计考虑了用户体验和易用性,使得在大量数据...
带学员课上做的oracle模仿百度分页样式的例子。比较适合初学者参考,jdbc工具类是自己写的,没有使用第三方分页组件。tomcat是apache-tomcat-7.0.41,myeclipse是MyEclipse 9.0,oracle是11g。例子中用的是海量数据...
标题中的“jsp分页显示标签”指的是JSP中可以使用的特定标签库,如JSTL(JavaServer Pages Standard Tag Library)或自定义标签,来简化分页逻辑的实现。JSTL的`<c:forEach>`标签可以用于循环输出分页按钮,而`...
3. JSP逻辑处理:在JSP页面中,使用Java代码段或自定义标签处理分页逻辑。接收请求参数,计算LIMIT和OFFSET值,然后执行SQL查询。 4. 数据绑定:将查询结果集绑定到JSP页面的表格中。 5. 分页导航:根据总记录数和...
在网页开发中,分页是一种常见的用户...综上所述,实现JSP分页涉及前端界面设计、后端Servlet处理、数据库查询以及用户体验优化等多个方面。通过熟练掌握这些知识点,你可以构建出像百度和Google一样高效的分页系统。
本文将深入探讨如何使用JSP(Java Server Pages)来实现查询分页,这是一项在网页开发中频繁遇到且必须掌握的技术。 ### 分页技术的重要性 分页技术主要解决的是当数据量庞大时,一次性加载所有数据到页面会导致...
**JSP分页显示技术详解** 在Web开发中,数据量较大的时候,通常需要采用分页的方式来展示数据,以提高用户体验并减轻服务器负担。JSP(JavaServer Pages)作为Java平台上的动态网页技术,提供了丰富的功能来实现这...
本项目名为“jsp +struts 分页经典”,显然是一个利用这两种技术实现的分页展示数据的案例。下面我们将深入探讨JSP和Struts框架,以及它们在分页、查询和数据操作中的应用。 首先,JSP是Java平台上的动态网页技术,...
【描述】提到的"程序中只用到了JSP页面,来实现分页查询Oracle数据库",意味着开发者在JSP页面中直接处理了与数据库交互的部分,包括建立数据库连接、执行SQL查询语句以及处理查询结果。通常,这种做法会将业务逻辑...
**JSP页面数据分页通用组件详解** 在Web开发中,数据分页是常见的功能,尤其是在处理大量数据时,为了提高用户体验和加载速度,通常会将数据分成多个页进行显示。`jsp页面数据分页通用组件`就是这样一个工具,它为...
### 仿照百度分页样式的代码解析与知识点详解 #### 一、代码背景与应用场景 本代码示例实现了一个类似百度网站分页显示数据的功能。适用于网站开发中需要对大量数据进行分页展示的场景,例如新闻列表、论坛帖子等。...
### JSP分页技术详解:初学者的完美指南 #### 引言 在现代Web开发中,数据展示的效率和用户体验至关重要。对于大型数据库或数据集的处理,一次性加载所有数据不仅消耗大量资源,还可能导致页面加载缓慢,严重影响...
- 考虑到用户可能会直接访问特定页码,需要处理缺失参数的情况。 总结,JSP假分页技术是一种简化版的分页实现,适用于数据量较小的情况。然而,当数据量较大时,为了优化性能,推荐采用真分页技术,即在数据库层面...
在这个模拟百度的JSP分页项目中,开发者可能还使用了一些最佳实践,比如缓存分页信息,避免频繁的数据库查询;或者使用Ajax实现无刷新分页,提高用户体验。同时,项目可能也涉及到了URL参数设计、错误处理、安全性等...
"jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页"这个压缩包显然包含了一套完整的 JSP 分页解决方案。下面我们将详细探讨 JSP 实现分页的相关知识点。 1. **JSP基本概念**: JSP 是一种基于 Java 的服务器端脚本语言...
【JSP+MySQL分页组件】是Web开发中常见的功能,用于处理大量数据时提高页面加载速度和用户体验。在Web应用程序中,一次性加载所有数据可能导致页面响应慢,尤其是在数据库存储的数据量庞大的情况下。分页技术可以...
总结,"jsp+servlet分页"涉及了JSP和Servlet的基础知识,包括JSP的EL和JSTL,Servlet的请求处理,以及数据库查询和数据展示。同时,实际开发中还需要了解如何使用数据库查询语句(如SQL的LIMIT和OFFSET)实现分页,...