pageBean
package com.neuedu.pojo;
public class PageBean {
//总条数
private int count;
//每页条数
private int pageSize=1;
//总页数
private int totalPage;
//当前页的页码
private int currentPage;
//是否为首页
private boolean firstPage;
//是否为尾页
private boolean lastPage;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
if(count%pageSize==0){
totalPage= count/pageSize;
}else{
totalPage= count/pageSize+1;
}
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
if(currentPage==1){
firstPage= true;
}else{
firstPage= false;
}
if(currentPage==totalPage){
lastPage= true;
}else{
lastPage= false;
}
}
public boolean isFirstPage() {
return firstPage;
}
public void setFirstPage(boolean firstPage) {
this.firstPage = firstPage;
}
public boolean isLastPage() {
return lastPage;
}
public void setLastPage(boolean lastPage) {
this.lastPage = lastPage;
}
}
改造servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
IUserService service=new UserServiceImpl();
//当前页码
String curPage=request.getParameter("currentPage");
if(curPage==null||curPage.isEmpty()){
curPage="1";
}
//查询DB里满足条件的记录总数
int count=service.count();
PageBean page=new PageBean();
page.setCount(count);
page.setCurrentPage(Integer.parseInt(curPage));
request.setAttribute("page", page);
//调用service
List<User> userList=new ArrayList();
//返回一个list
userList=service.findAllUser(page.getCurrentPage(),page.getPageSize());
//把查询结果放到request里
request.setAttribute("userList", userList);
//返回到页面
request.getRequestDispatcher("/admin/userlist.jsp").forward(request, response);
}
dao 关键方法
汇总总条数
@Override
public int count() {
int count=0;
conn=DBUtil.getConnection();
try {
ps=conn.prepareStatement("select count(*) from t_user ");
rs=ps.executeQuery();
if(rs.next()){//如果有该用户
count=rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
DBUtil.closeConnection(rs, ps, conn);
return count;
}
mysql分页
@Override
public List<User> findAllUser(int curPage, int pageSize) {
conn=DBUtil.getConnection();
List<User> userList=new ArrayList();
try {
ps=conn.prepareStatement("select * from t_user limit ?,?");
ps.setInt(1, (curPage-1)*pageSize);
ps.setInt(2, pageSize);
rs=ps.executeQuery();
while(rs.next()){
User user=new User();
//把从数据库查询到的记录封装到对象里
user.setId(rs.getInt("user_id"));
user.setUserName(rs.getString("user_name"));
user.setUserPwd(rs.getString("user_pwd"));
user.setEmail(rs.getString("user_email"));
user.setPower(rs.getInt("user_power"));
user.setIdCard(rs.getString("user_idcard"));
//把对象放到list里
userList.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBUtil.closeConnection(rs, ps, conn);
return userList;
}
页面
<input type="button" value="删除" onclick="del();">
<a href="<%=request.getContextPath()%>/findAllUserServlet?currentPage=1">首页 </a>
<c:if test="${! page.firstPage }">
<a href="<%=request.getContextPath()%>/findAllUserServlet?currentPage=${page.currentPage-1}">上一页 </a>
</c:if>
<c:if test="${! (page.lastPage) }">
<a href="<%=request.getContextPath()%>/findAllUserServlet?currentPage=${page.currentPage+1}">下一页 </a>
</c:if>
<a href="<%=request.getContextPath()%>/findAllUserServlet?currentPage=${page.totalPage}">尾页 </a><br>