`

JSP仿百度分页,谷歌分页页码处理

    博客分类:
  • Jsp
阅读更多

 像百度一样的jsp分页效果,像goolge一样的分页效果!
 根据设定参数一次取一页记录内容显示

jsp页面代码如下:

 

<%@ 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) {
					// TODO Auto-generated catch block
					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仿百度、谷歌分页解决分页太多,始终显示一部分的页码

    百度和谷歌的分页设计巧妙地解决了这个问题,它们只显示一部分页码,并在两端添加省略号,表示存在未显示的页码。这种设计既保留了导航的便利性,又避免了用户界面的混乱。要实现这样的效果,我们需要以下几个步骤:...

    仿百度分页jsp版

    本项目"仿百度分页jsp版"是一个基于Maven构建的Java Web应用,其目标是实现与百度网站类似的分页效果。下面将详细介绍该项目涉及的关键知识点。 首先,**分页** 是网页设计中的一种策略,它将大量数据分割成多个小...

    JSP实现百度谷歌分页页码功能源代码

    本示例聚焦于使用JSP(Java Server Pages)来实现类似百度和谷歌的分页功能。下面将详细解释如何通过JSP来创建这种功能,以及涉及到的关键知识点。 首先,我们要理解JSP的基础。JSP是一种基于Java的服务器端脚本...

    java仿百度分页

    Java仿百度分页是一种常见的网页分页实现方式,它的核心思想是通过自定义标签库(JSP Tag Library)和Java后端代码配合,提供一种简洁、高效的分页展示方案。百度分页的设计考虑了用户体验和易用性,使得在大量数据...

    jsp+servlet+oracle模仿百度分页

    带学员课上做的oracle模仿百度分页样式的例子。比较适合初学者参考,jdbc工具类是自己写的,没有使用第三方分页组件。tomcat是apache-tomcat-7.0.41,myeclipse是MyEclipse 9.0,oracle是11g。例子中用的是海量数据...

    jsp 分页显示 标签 仿百度那样的分页效果

    标题中的“jsp分页显示标签”指的是JSP中可以使用的特定标签库,如JSTL(JavaServer Pages Standard Tag Library)或自定义标签,来简化分页逻辑的实现。JSTL的`&lt;c:forEach&gt;`标签可以用于循环输出分页按钮,而`...

    JSP实现真分页和假分页

    3. JSP逻辑处理:在JSP页面中,使用Java代码段或自定义标签处理分页逻辑。接收请求参数,计算LIMIT和OFFSET值,然后执行SQL查询。 4. 数据绑定:将查询结果集绑定到JSP页面的表格中。 5. 分页导航:根据总记录数和...

    JSP实现类似百度,google的分页

    在网页开发中,分页是一种常见的用户...综上所述,实现JSP分页涉及前端界面设计、后端Servlet处理、数据库查询以及用户体验优化等多个方面。通过熟练掌握这些知识点,你可以构建出像百度和Google一样高效的分页系统。

    使用JSP实现查询分页

    本文将深入探讨如何使用JSP(Java Server Pages)来实现查询分页,这是一项在网页开发中频繁遇到且必须掌握的技术。 ### 分页技术的重要性 分页技术主要解决的是当数据量庞大时,一次性加载所有数据到页面会导致...

    JSP通用分页显示1.2.rar_java 分页显示_jsp_jsp 分页_jsp 分页_jsp分页

    **JSP分页显示技术详解** 在Web开发中,数据量较大的时候,通常需要采用分页的方式来展示数据,以提高用户体验并减轻服务器负担。JSP(JavaServer Pages)作为Java平台上的动态网页技术,提供了丰富的功能来实现这...

    jsp +struts 分页经典

    本项目名为“jsp +struts 分页经典”,显然是一个利用这两种技术实现的分页展示数据的案例。下面我们将深入探讨JSP和Struts框架,以及它们在分页、查询和数据操作中的应用。 首先,JSP是Java平台上的动态网页技术,...

    纯JSP实现真分页

    【描述】提到的"程序中只用到了JSP页面,来实现分页查询Oracle数据库",意味着开发者在JSP页面中直接处理了与数据库交互的部分,包括建立数据库连接、执行SQL查询语句以及处理查询结果。通常,这种做法会将业务逻辑...

    jsp页面数据分页通用组件

    **JSP页面数据分页通用组件详解** 在Web开发中,数据分页是常见的功能,尤其是在处理大量数据时,为了提高用户体验和加载速度,通常会将数据分成多个页进行显示。`jsp页面数据分页通用组件`就是这样一个工具,它为...

    仿照百度分页样式的代码

    ### 仿照百度分页样式的代码解析与知识点详解 #### 一、代码背景与应用场景 本代码示例实现了一个类似百度网站分页显示数据的功能。适用于网站开发中需要对大量数据进行分页展示的场景,例如新闻列表、论坛帖子等。...

    JSP分页技术,非常好的的学习Jsp分页技术的教程,适合初学者

    ### JSP分页技术详解:初学者的完美指南 #### 引言 在现代Web开发中,数据展示的效率和用户体验至关重要。对于大型数据库或数据集的处理,一次性加载所有数据不仅消耗大量资源,还可能导致页面加载缓慢,严重影响...

    jsp假分页技术jsp假分页

    - 考虑到用户可能会直接访问特定页码,需要处理缺失参数的情况。 总结,JSP假分页技术是一种简化版的分页实现,适用于数据量较小的情况。然而,当数据量较大时,为了优化性能,推荐采用真分页技术,即在数据库层面...

    模拟百度的JSP分页源代码

    在这个模拟百度的JSP分页项目中,开发者可能还使用了一些最佳实践,比如缓存分页信息,避免频繁的数据库查询;或者使用Ajax实现无刷新分页,提高用户体验。同时,项目可能也涉及到了URL参数设计、错误处理、安全性等...

    jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页

    "jsp.rar_jsp 分页_jsp分页_jsp实现分页_分页"这个压缩包显然包含了一套完整的 JSP 分页解决方案。下面我们将详细探讨 JSP 实现分页的相关知识点。 1. **JSP基本概念**: JSP 是一种基于 Java 的服务器端脚本语言...

    JSP+MySql分页组件

    【JSP+MySQL分页组件】是Web开发中常见的功能,用于处理大量数据时提高页面加载速度和用户体验。在Web应用程序中,一次性加载所有数据可能导致页面响应慢,尤其是在数据库存储的数据量庞大的情况下。分页技术可以...

    jsp+servlet分页

    总结,"jsp+servlet分页"涉及了JSP和Servlet的基础知识,包括JSP的EL和JSTL,Servlet的请求处理,以及数据库查询和数据展示。同时,实际开发中还需要了解如何使用数据库查询语句(如SQL的LIMIT和OFFSET)实现分页,...

Global site tag (gtag.js) - Google Analytics