JavaWeb实现分页哦
分页是现在项目必备的功能,那我们来看看哦
1.首先分析分页需要哪些数据???
1.总记录数totalpageCount
sql语句 select count(*)from 表名
2.每页显示的数量 pageSize
1.客户端进行传递
2.由页面进行传递
3.总页数 totalPage
总记录数/每页显示的数量
注意:如果总记录数/每页的数量>0,则总页码+1
4.当前页currentPage
客户端进行传递的
5.每页的数据 <List>
通过sql语句求得:
select * from 表名 limit begin pageSize
begin可以由公式求得:(currentPage-1)*pageSizes
2.知道了数据之后,我们来写业务逻辑
业务逻辑:
1.编写page类
2.点击当前页的时候,需要传递两个参数:currentPage和pageSize
servlet页面:1.接受参数
2.调用service查询page
1.创建空的page对象
2.设置当前页面属性curentPage和每页显示的数量pageSize
3.调用dao查询总记录数pageTotalCount
4.调用dao查询list集合
(int begin,int pageSize)
5.计算总页码
总记录数/每页显示的数量
totalPage/pageSize
(dao层)
1.查询总记录数的方法
2.查询每页显示的数据的方法(int begin,int pageSize)
3.将page存入request
4.转发list.jsp显示
3.直接上代码
实体Page类
package com.cn.pojo;
import java.util.List;
public class Page<T> {
// 当前页
private int currentPage;
// 每一页的数量
private int pageSize;
// 总记录数
private int totalPageCount;
// 总页数
private int totalPage;
// 每一页的数据------泛型
private List<T> list;
public Page() {
super();
}
public Page(int currentPage, int pageSize, int totalPageCount, int totalPage, List<T> list) {
super();
this.currentPage = currentPage;
this.pageSize = pageSize;
this.totalPageCount = totalPageCount;
this.totalPage = totalPage;
this.list = list;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPageCount() {
return totalPageCount;
}
public void setTotalPageCount(int totalPageCount) {
this.totalPageCount = totalPageCount;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
servlet页面 BookPageServlet
package com.cn.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;
import com.cn.pojo.Book;
import com.cn.pojo.Page;
import com.cn.service.BookService;
/**
* Servlet implementation class BookPageServlet
*/
public class BookPageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public BookPageServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
//获得前端的值
String currentPage = request.getParameter("currentPage");
String pageSize = request.getParameter("pageSize");
//防止空指针异常
if(currentPage == null || "".equals(currentPage)) {
currentPage="1";
}
if(pageSize == null || "".equals(pageSize)) {
pageSize="5";
}
//存到request里
try {
Page<Book> page = BookService.findPage(currentPage, pageSize);
request.setAttribute("page", page);
//转发你想要的页面
request.getRequestDispatcher("bookall.jsp").forward(request, response);
} catch (SQLExcept