一、详细分页
在“allUser.jsp”的“首页”和“尾页”中增加如下代码
<div>
<a href="/findByPage?currentPage=1&size=5"><font color="black">首页</font></a>
<c:if test="${pageInfo.currentPage==1}">
<a href="/findByPage?currentPage=1&size=5"><font color="black">上一页</font></a>
</c:if>
<c:if test="${pageInfo.currentPage>1}">
<a href="/findByPage?currentPage=${pageInfo.currentPage-1}&size=5"><font color="black">上一页</font></a>
</c:if>
<c:forEach begin="1" end="${pageInfo.totaPage}" var="i">
<a href="/findByPage?currentPage=${i}&size=5"><font color="black">${i}</font></a>
</c:forEach>
<c:if test="${pageInfo.currentPage==pageInfo.totaPage}">
<a href="/findByPage?currentPage=${pageInfo.totaPage}&size=5"><font color="black">下一页</font></a>
</c:if>
<c:if test="${pageInfo.currentPage<pageInfo.totaPage}">
<a href="/findByPage?currentPage=${pageInfo.currentPage+1}&size=5"><font color="black">下一页</font></a>
</c:if>
<a href="/findByPage?currentPage=${pageInfo.totaPage}&size=5"><font color="black">尾页</font></a>
</div>
将“SearchServlet.java”和“FindUServlet.java”删除
“IUserDao”添加代码
List<User> findbyupage(String username,int start,int size);
“UserDaoImpl”
@Override
public List<User> findByPage(String username,int start, int size) {
List<User> users=new ArrayList<>();
Connection connection=null;
PreparedStatement statement=null;
ResultSet resultSet=null;
String sql=null;
try{
connection=DButil.getConnection();
if (username == null) {
sql= "select * from tb_user limit ?,?";
statement = connection.prepareStatement(sql);
statement.setInt(1, start);
statement.setInt(2, size);
} else {
sql = "select * from tb_user where username like ? limit ?,?";
statement = connection.prepareStatement(sql);
statement.setString(1, "%" + username + "%");
statement.setInt(2, start);
statement.setInt(3, size);
}
resultSet=statement.executeQuery();
while (resultSet.next()){
User user=new User();
user.setId(resultSet.getInt(1));
user.setUsername(resultSet.getString(2));
user.setPassword(resultSet.getString(3));
user.add(user);
users.add(user);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DButil.closeAll(resultSet,statement,connection);
}
return users;
}
“IUserService”
PageUInfo findbyupage(String username,int currentPage,int size);
“UserServiceImpl”
@Override
public PageInfo findBypage(String searchname, int currentPafe, int size) {
PageInfo pageInfo=new PageInfo();
pageInfo.setCurrentPage(currentPafe);
pageInfo.setSize(size);
//1 0 2 5 3 10 4 15........
int start=(currentPafe-1)*size;
List<User> users = userDao.findByPage(searchname,start, size);
pageInfo.setList(users);
int count = userDao.selectCount();
pageInfo.setTotalCount(count);
Double c=Double.valueOf(count);
Double ceil = Math.ceil(c / size);
pageInfo.setTotaPage(ceil.intValue());
return pageInfo;
}
修改“FindByUPageServlet”代码为
package com.zhongruan.servlet;
import com.zhongruan.puju.PageInfo;
import com.zhongruan.service.IUserService;
import com.zhongruan.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
public class FindByPageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String searchname = (String) session.getAttribute("searchname");
String c = request.getParameter("currentPage");
int currentPage = Integer.parseInt(c);
String s = request.getParameter("size");
int size = Integer.parseInt(s);
IUserService userService = new UserServiceImpl();
PageInfo pageInfo = null;
pageInfo = userService.findBypage(searchname, currentPage, size);
session.setAttribute("pageInfo", pageInfo);
request.getRequestDispatcher("allUser.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String searchname = request.getParameter("searchname");
int currentPage = 1;
int size = 5;
IUserService userService = new UserServiceImpl();
PageInfo pageInfo = null;
pageInfo = userService.findBypage(searchname, currentPage, size);
HttpSession session = request.getSession();
session.setAttribute("searchname", searchname);
session.setAttribute("pageInfo", pageInfo);
request.getRequestDispatcher("allUser.jsp").forward(request, response);
}
}
在“web.xml”删除seach FindUServlet代码
将“allUser.jsp”的“搜索相关代码改为
<form action="/findbyupage" method="post">
<input name="searchname" type="text"/>
<input type="submit" value="搜索"/>
</form>