一、详细分页
在“allUser.jsp”的“首页”和“尾页”中增加如下代码
<c:if test="${pageInfo.currentPage==1}">
<a href="/findbyupage?currentPage=1&size=5">上一页</a>
</c:if>
<c:if test="${pageInfo.currentPage>1}">
<a href="/findbyupage?currentPage=${pageInfo.currentPage-1}&size=5">上一页</a>
</c:if>
<c:forEach begin="1" end="${pageInfo.totalPage}" var="i">
<a href="/findbyupage?currentPage=${i}&size=5">${i}</a>
</c:forEach>
<c:if test="${pageInfo.currentPage==pageInfo.totalPage}">
<a href="/findbyupage?currentPage=${pageInfo.totalPage}&size=5">下一页</a>
</c:if>
<c:if test="${pageInfo.currentPage<pageInfo.totalPage}">
<a href="/findbyupage?currentPage=${pageInfo.currentPage+1}&size=5">下一页</a>
</c:if>
二、代码优化
将“SearchServlet.java”和“FindUServlet.java”删除
在“IUserDao”,“UserDaoImpl”,“IUserService”,“UserServiceImpl”中将“search”有关语句删除,并修改“findbyupage”语句
“IUserDao”
List<User> findbyupage(String username,int start,int size);
“UserDaoImpl”
@Override
public List<User> findbyupage(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 staff limit ?,?";
statement = connection.prepareStatement(sql);
statement.setInt(1, start);
statement.setInt(2, size);
} else {
sql = "select * from staff 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));
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 PageUInfo findbyupage(String searchname,int currentPage, int size) {
PageUInfo pageUInfo=new PageUInfo();
pageUInfo.setCurrentPage(currentPage);
pageUInfo.setSize(size);
int start=(currentPage-1)*size;
List<User> users=userDao.findbyupage(searchname,start,size);
pageUInfo.setList(users);
int count=userDao.selectCount();
pageUInfo.setTotalCount(count);
Double ceil=Math.ceil(Double.valueOf(count)/size);
pageUInfo.setTotalPage(ceil.intValue());
return pageUInfo;
}
修改“FindByUPageServlet”代码为
public class FindByUPageServlet 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();
PageUInfo pageUInfo=null;
pageUInfo=userService.findbyupage(searchname,currentPage,size);
session.setAttribute("pageInfo",pageUInfo);
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();
PageUInfo pageUInfo=null;
pageUInfo=userService.findbyupage(searchname,currentPage,size);
HttpSession session=request.getSession();
session.setAttribute("searchname",searchname);
session.setAttribute("pageInfo",pageUInfo);
request.getRequestDispatcher("/allUser.jsp").forward(request,response);
}
}
在“web.xml”删除如下代码
<servlet>
<servlet-name>SearchServlet</servlet-name>
<servlet-class>com.zhongruan.servlet.SearchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SearchServlet</servlet-name>
<url-pattern>/search</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>FindUServlet</servlet-name>
<servlet-class>com.zhongruan.servlet.FindUServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FindUServlet</servlet-name>
<url-pattern>/finduser</url-pattern>
</servlet-mapping>
将“allUser.jsp”的“搜索相关代码改为
<form action="/findbyupage" method="post">
<input name="searchname" type="text"/>
<input type="submit" value="搜索"/>
</form>
实现效果