本人刚学完 JSP 的分页功能,先是照着老师的要求实现了一个页面,但总觉得功能有点怪怪的。
想到百度和谷歌的搜索结果页面就是经过分页处理的,于是进入百度(百度网页搜索没有首页和尾页两项,也不知道是Bug还是故意这样 ^_^)。
百度一个单词然后随便进入一页(不是结果页面),在地址栏就可以看到URL,如:http://www.baidu.com/s?wd=java&pn=10
pn值为 所在页数*10。而每页正好有10条记录。
然后修改pn值为-1,结果页面没有变,改为1-9都仍停留在原结果上。
但改为10时结果跳入第二页。之后的11-30也是这样的。
(google 的没有细研究,但修改修改其 start 值时结果页面会变化)
猜想:
1、后面这个 pn 关键字的值应该就是页面的起始记录所在位置-1。
2、这个 pn 应该是经过处理的,即根据 pn 值计算该记录所在页,再用这个页码去搜索出结果。
所以,需要变量有:
int start = 0; // 起始条目
int pageSize = 10; // 页面大小
int pageNow = 0; // 当前页码,由这个可以判断在第一页时不该显示 “上一页”
int pageCount = 0; // 总页面数
由于传进来的是 start 值,首先需要对其进行矫正:
String s = request.getParameter("start");