"这是一个关于JSP实现分页查询的案例,主要展示了如何从数据库获取数据并进行分页显示。代码中包含了一些基本的JSP语法和SQL查询操作,以及对分页参数的处理。" 在JSP(JavaServer Pages)开发中,分页是一种常见的功能,用于展示大量数据时提高用户体验,避免一次性加载过多内容导致页面加载慢或内存压力过大。这个案例提供了一个完整的分页实现,但需要注意的是,从数据库获取数据的部分需要根据实际的数据库连接和表结构进行修改。 首先,我们看到JSP文件中使用了`<%@page>`指令来导入Java类库,如`java.util.*`和`javax.sql.RowSet`,这些都是分页查询过程中常用的包。`java.util.*`包含了ArrayList、HashMap等数据结构,可能用于存储数据;而`javax.sql.RowSet`是Java SQL API的一部分,它提供了对数据库结果集的缓存和同步能力。 接着,页面中设置了一些HTTP响应头,比如禁用缓存,以及定义了页面的关键字和描述,这对于SEO(搜索引擎优化)有一定帮助。 在`<body>`部分,代码通过`request`对象获取当前请求的参数,例如`pageNow`表示当前页码。如果用户通过URL传递了当前页码,则将其转换为整数。`pageSize`定义了每一页显示的数据量,这里设为10。`rowCount`用于存储数据库中的总记录数,`pageCount`则用于计算总页数。 案例中还定义了两个字符串数组`daySw`和`dayXw`,可能是用于存储日期相关的数据。然后通过循环初始化这些数组。 接下来的`DbOper.executeQuery`方法用于执行SQL查询,这个方法需要根据实际的数据库连接方式和查询语句进行调整。在这个例子中,查询语句显然是不完整的,应该是一个SELECT语句,可能包含WHERE子句来限制返回的数据量,以及ORDER BY子句来决定数据的排序方式。 在获取到数据库结果后,通常会遍历结果集,将数据存储到适当的数据结构中,然后根据当前页码和每页大小计算出显示的范围。最后,利用这些数据渲染分页界面,包括页码链接和显示的数据。 这个案例提供了一个基础的分页实现框架,开发者需要根据实际项目需求,如数据库连接、查询语句、数据处理逻辑等进行相应的修改和扩展。同时,为了提高用户体验,还可以考虑加入分页样式美化、加载动画、动态加载等进阶功能。
<%@ include file="/pms/platform/resources.jsp"%>
<%@ page language="java" import="javax.sql.RowSet" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%
String path = request.getContextPath();
%>
<title>职工考勤信息查询</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<%
String date="2013-04";
String ybs="",ybz="",ybx="",name="",data;
String daySw[]=new String[31];//每日上午出勤情况
String dayXw[]=new String[31];//每日下午出勤情况
for(int i=0;i<31;i++){//初始化出勤情况为空
daySw[i]="";
dayXw[i]="";
}
int n1,n2;//每页显示条数的起止位置
int pageNow=1;//当前页面,初始1页
int rowCount=0;//数据库中的记录条数
int pageCount=0;//一共要显示的页数
String s_pageNow=request.getParameter("pageNow");//获取当前页号
if(s_pageNow!=null) pageNow=Integer.parseInt(s_pageNow);
RowSet kqInfor=DbOper.executeQuery("select count(distinct userid) from JXD7_RZ_ZGKQB");//查询人数
if(kqInfor.next()) rowCount=kqInfor.getInt(1);//获取人数
kqInfor.close();
if(rowCount%pageSize==0) pageCount=rowCount/pageSize;//获取页数
else pageCount=rowCount/pageSize+1;
n1=10*pageNow-9; n2=n1+9;
//查询起止位置位于n1和n2之间的id号
RowSet userid=DbOper.executeQuery("select userid,username from(select username,userid,rownum rn from(select distinct userid,username from JXD7_RZ_ZGKQB) where rownum<="+n2+") where rn>="+n1);
%>
<table align="center" border="0" bgcolor="#6FA8E8" style="font-size:12px;font-family:微软雅黑;">
<tr>
<td bgcolor="white" width="30"></td><td bgcolor="white" width="30"></td><td bgcolor="white" width="15">1</td><td bgcolor="white" width="15">2</td><td bgcolor="white" width="15">3</td><td bgcolor="white" width="15">4</td><td bgcolor="white" width="15">5</td><td bgcolor="white" width="15">6</td><td bgcolor="white" width="15">7</td><td bgcolor="white" width="15">8</td><td bgcolor="white" width="15">9</td><td bgcolor="white" width="15">10</td>
<td bgcolor="white" width="15">11</td><td bgcolor="white" width="15">12</td><td bgcolor="white" width="15">13</td><td bgcolor="white" width="15">14</td><td bgcolor="white" width="15">15</td><td bgcolor="white" width="15">16</td><td bgcolor="white" width="15">17</td><td bgcolor="white" width="15">18</td><td bgcolor="white" width="15">19</td><td bgcolor="white" width="15">20</td>
<td bgcolor="white" width="15">21</td><td bgcolor="white" width="15">22</td><td bgcolor="white" width="15">23</td><td bgcolor="white" width="15">24</td><td bgcolor="white" width="15">25</td><td bgcolor="white" width="15">26</td><td bgcolor="white" width="15">27</td><td bgcolor="white" width="15">28</td><td bgcolor="white" width="15">29</td><td bgcolor="white" width="15">30</td>
<td bgcolor="white" width="15">31</td><td bgcolor="white" width="15">出勤</td><td bgcolor="white" width="15">公出</td><td bgcolor="white" width="15">加班</td><td bgcolor="white" width="15">补休</td><td bgcolor="white" width="15">轮休</td><td bgcolor="white" width="15">年休</td><td bgcolor="white" width="15">病事</td>
<td bgcolor="white" width="15">公学</td><td bgcolor="white" width="15">婚假</td><td bgcolor="white" width="15">产假</td><td bgcolor="white" width="15">探亲</td><td bgcolor="white" width="15">夜上</td><td bgcolor="white" width="15">夜中</td><td bgcolor="white" width="15">页下</td>
</tr>
<%while(userid.next()){
//通过id号查询该用户的考勤日期,上午,下午,夜班情况,用户名信息
RowSet userInfor=DbOper.executeQuery("select KQRQ,SW,XW,YBS,YBZ,YBX,ZB,USERNAME from JXD7_RZ_ZGKQB where userid='"+userid.getString("USERID")+"'and KQRQ like '%"+date+"%'");
while(userInfor.next()){
//获取用户名,夜班情况,考勤日期
name=userInfor.getString("username");
剩余5页未读,继续阅读
- 粉丝: 0
- 资源: 13
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展