`

JSP+JDBC_假分页

阅读更多

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
	<head>
		<title>分页显示</title>
	</head>
	<body>
		<center>
			<h1>人员列表</h1>
			<hr><br>
			<%
				// 进行乱码处理
				request.setCharacterEncoding("GB2312");
			%>
			<%!
				final String jspUrl = "list_person.jsp";
			%>
			<%
				// 定义如下分页变量
				// 1、定义每页要显示的记录数
				int lineSize = 10;
				// 2、定义当前页
				int currentPage = 1;
				// 计算出总页数
				int pageSize = 0;
				// 总记录数
				int allRecorders = 0;
				// 加入查询关键字变量
				String keyWord = "";
			%>
			<%
				// 接收查询关键字
				keyWord = request.getParameter("kw");
				// 接收传过来的当前页
				try {
					currentPage = Integer.parseInt(request.getParameter("cp"));
				} catch(Exception e) {
				}
			%>
			<%
				final String DBDRIVER = "org.gjt.mm.mysql.Driver";
				final String DBURL = "jdbc:mysql://localhost/test";
				final String DBUSER = "root";
				final String DBPASSWORD = "depravedAngel";
				Connection conn = null;
			%>
			<%
				try {
					Class.forName(DBDRIVER);
					conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
					String sql = null;
					PreparedStatement pstmt = null;
					ResultSet rs = null;
					if(keyWord == null) {
						sql = "SELECT COUNT(*) FROM person";
					} else {
						sql = "SELECT COUNT(*) FROM person WHERE uid LIKE ? OR name LIKE ?";
						
					}
					pstmt = conn.prepareStatement(sql);
					if(keyWord != null) {
						pstmt.setString(1,"%" + keyWord + "%");
						pstmt.setString(2,"%" + keyWord + "%");
					}
					rs = pstmt.executeQuery();
					if(rs.next()){
						allRecorders = rs.getInt(1);
					}
					rs.close();
					pstmt.close();
					
					// 计算总页数
      				pageSize = (allRecorders+lineSize-1)/lineSize;
      				if(keyWord == null) {
      					sql = "SELECT id,uid,name,password FROM person";
      				} else {
						sql = "SELECT id,uid,name,password FROM person WHERE uid LIKE ? OR name LIKE ?";
					}
					 
					pstmt = conn.prepareStatement(sql);
					if(keyWord != null) {
						pstmt.setString(1,"%" + keyWord + "%");
						pstmt.setString(2,"%" + keyWord + "%");
					}
					rs = pstmt.executeQuery();
			%>
			<script language="javaScript">
				function openPage(curpage)
				{
					document.spage.cp.value = curpage;
					document.spage.submit();	
				}
				function selOpenPage()
				{
					document.spage.cp.value = document.spage.selpage.value;
					document.spage.submit();
				}
			</script>
			<form name="spage" action="<%=jspUrl %>">
				输入查询关键字:<input type="text" name="kw" value="<%=keyWord %>">
				<input type="submit" value="查询">
				<br><br>
				<%
					if(allRecorders > 0) {
			    %>
					<input type="button" value="首页" onClick="openPage(1)"
					<%=currentPage==1?"disabled":"" %>>
					<input type="button" value="上一页" onClick="openPage(<%=currentPage-1 %>)"
					<%=currentPage==1?"disabled":"" %>>
					<input type="button" value="下一页" onClick="openPage(<%=currentPage+1 %>)"
					<%=currentPage==pageSize?"disabled":"" %>>
					<input type="button" value="尾页" onClick="openPage(<%=pageSize %>)"
					<%=currentPage==pageSize?"disabled":"" %>>
					<input type="hidden" name="cp" value="">
					<font color="red" size="5"><%=currentPage %></font>
					/
					<font color="red" size="5"><%=pageSize %></font>
					跳转到
						<select name="selpage" onChange="selOpenPage()">
						<%
							for(int x=1;x<=pageSize;x++){
							%>
							<option value="<%=x %>" <%=currentPage==x?"selected":"" %>><%=x %></option>
							<%
							}
						%>
						</select>
					页
				<%
					 }
				%>
			</form>
			
			<table border="1" width="80%">
				<tr>
					<td>编号</td>
					<td>登陆名称</td>
					<td>姓名</td>
					<td>密码</td>
					<td colspan="2">操作</td>
				</tr>
				<%
					int i = 0;
					for(int x=0; x<(currentPage-1)*lineSize;x++){
						rs.next();
					}
					// 对于输出代码之前要求按显示的页数空出
					for(int x=0; x<lineSize;x++){
						if (rs.next()) {
							i++;
							int id = rs.getInt(1);
							String uid = rs.getString(2);
							String name = rs.getString(3);
							String password = rs.getString(4);
				%>
				<tr>
					<td><%=id%></td>
					<td><%=uid%></td>
					<td><%=name%></td>
					<td><%=password%></td>
					<td>更新</td>
					<td>删除</td>
				</tr>
				<%
						}
					}
						rs.close();
						pstmt.close();
						if (i == 0) {
				%>
				<tr>
					<td colspan="6">没有数据!!!</td>
				</tr>
				<%
					}
				%>
			</table>
			<%
				} catch (Exception e) {
				} finally {
					conn.close();
				}
			%>
		</center>
	</body>
</html>


数据库脚本:
--  删除表
DROP TABLE person;
-- 建立person表
CREATE TABLE person
(
	-- 生成一个流水号,观察显示的纪录数
	id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
	-- 用户的登陆ID
	uid VARCHAR(32),
	-- 用户的真实姓名
	name VARCHAR(32),
	-- 用户的登陆密码
	password VARCHAR(30)
);

-- 插入测试数据
INSERT INTO person(uid,name,password) VALUES('darkness01','堕落天使01','SKY01');
INSERT INTO person(uid,name,password) VALUES('darkness02','堕落天使02','SKY02');
INSERT INTO person(uid,name,password) VALUES('darkness03','堕落天使03','SKY03');
INSERT INTO person(uid,name,password) VALUES('darkness04','堕落天使04','SKY04');
INSERT INTO person(uid,name,password) VALUES('darkness05','堕落天使05','SKY05');
INSERT INTO person(uid,name,password) VALUES('darkness06','堕落天使06','SKY06');
INSERT INTO person(uid,name,password) VALUES('darkness07','堕落天使07','SKY07');
INSERT INTO person(uid,name,password) VALUES('darkness08','堕落天使08','SKY08');
INSERT INTO person(uid,name,password) VALUES('darkness09','堕落天使09','SKY09');
INSERT INTO person(uid,name,password) VALUES('darkness10','堕落天使10','SKY10');
INSERT INTO person(uid,name,password) VALUES('darkness11','堕落天使11','SKY11');
INSERT INTO person(uid,name,password) VALUES('darkness12','堕落天使12','SKY12');
INSERT INTO person(uid,name,password) VALUES('darkness13','堕落天使13','SKY13');
INSERT INTO person(uid,name,password) VALUES('darkness14','堕落天使14','SKY14');
INSERT INTO person(uid,name,password) VALUES('darkness15','堕落天使15','SKY15');
INSERT INTO person(uid,name,password) VALUES('darkness16','堕落天使16','SKY16');
INSERT INTO person(uid,name,password) VALUES('darkness17','堕落天使17','SKY17');
INSERT INTO person(uid,name,password) VALUES('darkness18','堕落天使18','SKY18');
INSERT INTO person(uid,name,password) VALUES('darkness19','堕落天使19','SKY19');
INSERT INTO person(uid,name,password) VALUES('darkness20','堕落天使20','SKY20');
INSERT INTO person(uid,name,password) VALUES('darkness21','堕落天使21','SKY21');
INSERT INTO person(uid,name,password) VALUES('darkness22','堕落天使22','SKY22');
INSERT INTO person(uid,name,password) VALUES('darkness23','堕落天使23','SKY23');
分享到:
评论

相关推荐

    1-JSP+JDBC_假分页

    本项目"1-JSP+JDBC_假分页"就是利用这两者来实现一种常见的功能——假分页。假分页是一种优化策略,它并不真正地对数据库进行分页操作,而是通过计算和展示数据来模拟分页效果,以提高性能。 首先,JSP是Java的一种...

    JSP+JDBC_假分页\\1-JSP+JDBC_假分页_

    JSP+JDBC_假分页\\1-JSP+JDBC_假分页_.wmv

    JSP+JDBC_真分页(基于Oracle数据库分页)笔记

    **JSP+JDBC真分页技术详解** 在Web开发中,为了提高用户体验,通常需要对大量的数据进行分页展示,而不是一次性加载所有数据。这涉及到两种主要的分页方式:假分页和真分页。这两种方法各有优缺点,适用于不同的...

    JavaWeb+JSP+Servlet+JDBC分页查询和查询后分页界面优化最终版

    在JavaWeb开发中,"JavaWeb+JSP+Servlet+JDBC分页查询和查询后分页界面优化"是一个常见的需求,特别是在构建大型的、数据密集型的学生管理系统中。这个主题涵盖了许多关键知识点,让我们逐一深入探讨。 首先,...

    JavaWeb+JSP+Servlet+JDBC分页查询和查询后分页

    项目主体结构是dao+db+filter+pojo+servlet, 使用技术Servlet转发,代码中有注释帮助学者理解,数据库为MySQL资源...实现的数据库内容分页,查询分页,对初学者难点是根据get请求的中的url地址进行查询后的分页效果。

    JSP+JDBC_真分页(基于MySQL数据库分页)

    **JSP + JDBC 真分页实现详解** 在Web开发中,为了提高用户体验,当数据量过大时,我们通常采用分页的方式来展示数据。在Java Web应用中,结合JSP(JavaServer Pages)和JDBC(Java Database Connectivity)可以...

    1-JSP+JDBC_假分页.rar

    本案例重点阐述了J2EE中分页代码的基本实现原理,通过假分页展示分页代码的开发,本章作为分页代码的一个开始单元,为后续代码的基础。 产品:JDK 1.5、Tomcat 5.0、MySQL数据库 技术:JAVA、JSP内置对象、SQL...

    JSP+JDBC的假分页3

    JSP的假分页代码,让你更好地分JSP页

    jsp+jdbc_oracle增删改查过滤分页排序

    本教程"jsp+jdbc_oracle增删改查过滤分页排序"旨在帮助初学者掌握如何利用JSP与Oracle数据库进行数据操作,包括增、删、改、查以及查询结果的过滤、分页和排序。 首先,我们需要理解JDBC(Java Database ...

    jsp+jdbc+servlet分页带增删查改

    在这个"jsp+jdbc+servlet分页带增删查改"项目中,开发者使用了MVC(Model-View-Controller)架构模式,实现了对数据的CRUD(Create, Read, Update, Delete)操作,并提供了分页功能。** 1. **JSP(JavaServer Pages...

    JSP+JDBC的假分页4

    JSP的假分页代码,让你更好地分JSP页

    JSP+JDBC假分页

    **JSP+JDBC假分页详解** 在Web开发中,分页是常见的用户界面功能,用于处理大量数据的展示,提高用户体验。JSP(JavaServer Pages)与JDBC(Java Database Connectivity)结合,可以实现数据的动态加载和分页显示。...

    JSP+JDBC_真分页(基于Oracle数据库分页).

    本主题聚焦于使用JSP和JDBC在Oracle数据库上实现真正的分页功能。在Web开发中,分页是提高用户体验的关键技术,尤其是在处理大量数据时,它能让用户更有效地浏览和查找所需信息。这里我们将深入探讨如何结合Java ...

    jsp+jdbc 真分页(mysql)

    在这个主题中,“jsp+jdbc 真分页(mysql)”指的是使用JSP和JDBC来实现MySQL数据库中的真实分页功能。在网页应用中,分页有助于提高用户体验,因为它允许用户逐步浏览大量的数据,而不是一次性加载所有内容。下面将...

    2-JSP_JDBC_真分页

    本资源“2-JSP_JDBC_真分页”聚焦于如何在JSP中实现真正的数据库分页功能,特别是基于MySQL数据库。分页在大型数据展示中至关重要,因为它提高了网页加载速度,改善了用户体验。 首先,我们需要理解JSP的基本概念。...

    纯JSP +JDBC实现分页

    本教程主要围绕"纯JSP +JDBC实现分页"这一主题,为初学者提供详细的步骤和讲解,帮助理解JSP、分页和JDBC的基础知识。 首先,我们需要了解JSP(JavaServer Pages)的基本概念。JSP是Java技术的一种,它允许Web...

Global site tag (gtag.js) - Google Analytics