分页显示的步骤

一.确定分页页数

1. 获取总记录数

2. 根据每页显示记录数与总记录数计算总页数

public int getTotalPages(int count, int pageSize){
    	int totalpages =0; 
    	totalpages =
                      (count%pageSize ==0)?(count/pageSize):(count/pageSize+1);
    	return totalpages;
}

二.分页SQL语句

1.伪列-rownum

① 由Oracle数据库表示自动创建

② 表示每一行记录的行号

2. 使用三层嵌套方式编写SQL

① 最内层:查询所有记录

② 中间层: 通过rownum的限定查询数量的上限

③ 最外层: 通过rownum的限定查询数量的下限

按时间排序后,显示第6-10条数据

String sql = "select * from (select rownum as r, t.* from ("+
"select news.* from news order by ncreatedate desc) t"+
" where rownum<=10) where r>5"

三.当前页的确认

1.获取当前页

思路:如果获取的页码为null,则设置当前页为首页,如果获取的页码不为null

则该页即为当前页码

//获取当前页
String currentPage = request.getParameter("pageIndex");
if(currentPage == null){
     currentPage = "1";
}    
int pageIndex = Integer.parseInt(currentPage); 

四.分页设置的实现

根据已确认的当首页,设置上页和下页

根据总页数设置首页和末页

 <a href="news_list.jsp?pageIndex=1">首页</a>&nbsp;
 <a href="news_list.jsp?pageIndex=<%= pageIndex -1%>">上一页</a>
 <a href="news_list.jsp?pageIndex=<%= pageIndex +1%>">下一页</a>
 <a href="news_list.jsp?pageIndex=<%=totalpages%>">末页</a>

五.首页和末页的控制

String currentPage = request.getParameter("pageIndex");
if(currentPage == null){
       currentPage = "1";
}    
int pageIndex = Integer.parseInt(currentPage);
//对首页与末页进行控制
if(pageIndex < 1){
       pageIndex = 1;
}else if(pageIndex > totalpages){
       pageIndex = totalpages;
}

更多推荐

javaWeb(分页)