JSP页面分页怎么做?

2022-04-20 社会 71阅读
分页须知知识点:
(1)JDBC2.0的可滚动结果集。
(2)HTTPGET请求。
一、可滚动结果集
Connectioncon=DriverManager.getConnection();
PreparedStatementstmt=con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSetrs=stmt.executeQuery();
常用方法:
(1)rs.absolute(n);可以将指针跳到第n行。
(2)rs.relative(n);可以将指针相对向下或向上n行。
(3)rs.first();
(4)rs.last();
(5)intcurRow=rs.getRow();指针指向的当前行
二、功能实现分解
1.计算结果的个数
rs.last();
intsize=rs.getRow();
即可得到结果的个数。

2.得到需要分几页
如果一页能够放5条记录,则
intpageCount=(size%5==0)?(size/5):(size/5+1);
即可获得需要分几页。

3.控制一页中规定显示记录个数
如果一页能显示5条记录,可以通过使用count进行计数。
intcount=0;
do{
if(count>=5)break;
.....
count++;
}while(rs.next());
通过break语句,能够使其显示到超过规定条目就跳出。

4.如何知道当前是第几页
通过HTTPget的特点,在地址栏中标明当前地址,如http://.......?curPage=1表示现在是第一页。
Stringtmp=request.getParameter("curPage");
if(tmp==null){
tmp="1";
}
curPage=Integer.parseInt(tmp);
可以获得当前页。
注意:
rs.absolute(1);表示指向第一条记录;
不存在rs.absolute(0);
rs.absolute((curPage-1)*PAGESIZE+1);把结果集指针调整到当前页应该显示的记录的开始.
比如如果一页显示5条记录,当前页是第二页,则需要把指针调整到6,当前页是第三页,则需要把指针调整为11.
5.点击首页、上一页、下一页、尾页的行为
">下一页
">上一页
">尾页
首页
6.为了保存当前页位置,则需要把当前页位置设为全局变量。
<%@pagecontentType="text/html"pageEncoding="GB2312"language="java"%>
<%@pageimport="java.sql.*"%>


hello



<%!
publicstaticfinalStringDRIVER="com.mysql.jdbc.Driver";
publicstaticfinalStringUSER="root";
publicstaticfinalStringPASS="12345";
publicstaticfinalStringURL="jdbc:mysql://localhost:3306/MLDN";
publicstaticfinalintPAGESIZE=5;
intpageCount;
intcurPage=1;
%>
<%
//一页放5个
Stringuser=null;
Stringpass=null;
try{
Class.forName(DRIVER);
Connectioncon=DriverManager.getConnection(URL,USER,PASS);
Stringsql="SELECTempno,ename,job,hiredate,sal,commFROMemp";
PreparedStatementstat=con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSetrs=stat.executeQuery();
rs.last();
intsize=rs.getRow();
pageCount=(size%PAGESIZE==0)?(size/PAGESIZE):(size/PAGESIZE+1);
Stringtmp=request.getParameter("curPage");
if(tmp==null){
tmp="1";
}
curPage=Integer.parseInt(tmp);
if(curPage>=pageCount)curPage=pageCount;
booleanflag=rs.absolute((curPage-1)*PAGESIZE+1);
out.println(curPage);
intcount=0;

do{
if(count>=PAGESIZE)break;
intempno=rs.getInt(1);
Stringename=rs.getString(2);
Stringjob=rs.getString(3);
Datehiredate=rs.getDate(4);
floatsal=rs.getFloat(5);
intcomm=rs.getInt(6);
count++;
%>

<%=empno%>
<%=ename%>
<%=job%>
<%=hiredate%>
<%=sal%>
<%=comm%>

<%
}while(rs.next());
con.close();
}
catch(Exceptione){

}
%>

首页
">上一页
">下一页
">尾页
第<%=curPage%>页/共<%=pageCount%>页

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com