问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jsp分页查询

发布网友 发布时间:2022-04-08 03:04

我来回答

4个回答

热心网友 时间:2022-04-08 04:33

<%@ 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_false_06.jsp" ;
%>
<%
// 定义如下分页变量
// 1、定义没页要显示的记录数
int lineSize = 10 ;
// 2、定义一个当前是第几页
int currentPage = 1 ;
// 计算出总页数
int pageSize = 0 ;
// 总记录数 / 每页显示的记录数
int allRecorders = 30 ;
// 加入查询关键字变量
String keyWord = null ;
%>
<%
// 接收查询关键字
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/mldn" ;
final String DBUSER = "root" ;
final String DBPASSWORD = "mysqladmin" ;
Connection conn = null ;
%>
<%
try
{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
PreparedStatement pstmt = null ;
String sql = null ;
if(keyWord==null)
{
// 如果为空则没有查询,表示查询出全部
sql = "SELECT COUNT(id) from person" ;
}
else
{
sql = "SELECT COUNT(id) from person WHERE uid LIKE ? OR name LIKE ?" ;
}
pstmt = conn.prepareStatement(sql) ;
// 如果有查询关键字,则进行设置
if(keyWord!=null)
{
pstmt.setString(1,"%"+keyWord+"%") ;
pstmt.setString(2,"%"+keyWord+"%") ;
}
ResultSet 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 ;
// alert(cupage) ;
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==null?"":keyWord%>">
<input type="submit" value="查询">
<%
if(allRecorders>0)
{
%>
<br>
<br>
<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 userid = rs.getString(2) ;
String name = rs.getString(3) ;
String password = rs.getString(4) ;
%>
<tr>
<td><%=id%></td>
<td><%=userid%></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)
{
%>
<h2>系统出错!!!</h2>
<%
}
finally
{
conn.close() ;
}
%>
</center>
</body>
</html>
自己看看吧,数据库自己建咯!

热心网友 时间:2022-04-08 05:51

是这样的。我也不是很清楚。我的做法是:
limit
然后返回来的是结果集,resultSet 里面有相关的方法。可以获取。他有多少记录。

热心网友 时间:2022-04-08 07:26

前一种数据准确性更高,也比较安全!你所想的第二种也是可以的。
例子的话 找不到了,你只要把你的当前页获得,基本上就行了...
就按你那个for循环完全没问题的!

热心网友 时间:2022-04-08 09:17

这个问题是复杂的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求这图片原图或者主角 出自哪一边电影或者电视剧 哪位大神知道这张图原版在吗?求原版。。。 在word中加下划线时第一次出现一条下划线第二次怎么就出现两条... 诛仙2资料站里的宠物展示能在npc买到吗 求一些诛仙2中的可以变为人形的宠物名字 诛仙2 神域的神农殿里,这是什么东西 诛仙2宠物元神问题 诛仙2 商城 中 宠物元神 怎么比 宠物 还贵啊?宠物元神是干什么的啊... 电热水器怎么安固定花洒 猛鬼夜惊魂剧情介绍 如何让英语课堂更高效 古墓丽影10里劳拉怎么就用个易拉罐能做手雷了?玩的时候没看清,原理何在? BL生子文...? 如何上好英语高效课堂 如何创设高效的英语课堂 如何构建高效的英语课堂教学 推荐一些好看的bl生子文 耽美生子文… 如何上好高效英语课堂 邪瓶生子文 如何成就高效的英语课堂 什么是高效英语课堂 怎样打造生动而高效的英语课堂 如何高效完成英语课堂教学 怎样教学才会让英语课堂又好玩又高效呢? 分子量和含量区别 2015年阳历5月4日出生的男孩,姓张,取什么名字好 怎么感觉(德国装甲师战歌)那么好听那么有激情!!中国的战歌是什么? 怎样提高英语教师的教学水平 英语老师的教学方法 如何打造小学高效英语课堂 真人CS的手雷怎么做 关于魔兽地图编辑器制作手雷技能制作和武器音效导入问题 诸葛大力跳舞的那首韩语歌曲是什么? 求好看的耽美生子文,HE结局 什么是美术?怎么分类? 求经典耽美生子文,已完结的,越多越好 魔兽怎样制作高爆手雷(物品),必须是仍手雷后目标位置有爆炸效果。 求生子文 美术的概念是? 经典生子文有哪些 生子耽美文 如何打造英语高效课堂的几点思索 完结的古代耽美生子文(先虐后甜)的,越多越好。 就经典耽美文 生子 如何实现高效英语课堂 求好看的耽美生子文 耽美,生子文 学日文,日文学会了50音,如何把日文翻译成中文,或中文翻译成日文 谁能帮我把日语50音图翻译成读法类似的汉字