java的Servlet分页技术是一种非常重要的分页技术,而且在网页的应用中非常有用。可以实现普通的网页的分页技术,以我这个简易版的登录系统为例,因为我要实现在登录之后显示的页面中出现的界面是能够有分页的,所以我在welcome界面中实现分页的过程。
这里分页主要有四个变量需要注意:分别是pageNow,pageSize,rowCount和pageCount。分别表示希望请求的页面、每一个页面显示几页、共有几条记录数和一共可以分成几个页面。主要的算法如下:
int rowCount;
int pageCount = 0;
int pageNow = 1; //默认先请求第一页
int pageSize = 3;
rowCount是从自己的数据库的记录中得到的一共有多少个记录数量。
if(rowCount % pageSize == 0)
{
pageCount = rowCount / pageSize;
}
else
{
pageCount = rowCount/pageSize + 1;
} //默认加1
//显示需要查的page的页面
ps = ct.prepareStatement("select top" + pageSize + "* from users where userId not in (select top )" + pageSize*(pageNow - 1) + "userId from users)");
以下是设置显示上一页和下一页显示的代码:
if(pageNow != 1) //因为如果是请求第一页,那么就不需要有上一页出现
pw.println("<a href=welcome?pageNowok=" + (pageNow - 1) + ">上一页</a>");
以下才是用来分页的:
for(int i = pageNow; i <= pageNow + 4; i++) //注意这个4是是指在上一页和下一页中间显示的页码的数量
{
pw.println("<a href=welcome?pageNowok=" + i + ">" + i + "</a>");
}
显示下一页:
if(pageNow != pageCount) //如果是最后一页,那么也不用显示下一页
pw.println("<a href=welcome?pageNowok=" + (pageNow + 1) + ">下一页</a>");