【JavaWeb】手写一个Servlet+JSP+JavaBean分页
以下是一个简化的例子,展示了如何使用Servlet、JSP和JavaBean实现分页功能。
JavaBean部分(PageBean.java):
public class PageBean {
private int currentPage; // 当前页
private int pageSize; // 每页显示条数
private int totalRecord; // 总记录数
private int totalPage; // 总页数
// 计算总页数
public void setTotalPage() {
if (totalRecord % pageSize == 0) {
totalPage = totalRecord / pageSize;
} else {
totalPage = totalRecord / pageSize + 1;
}
}
// 省略getter和setter方法...
}
Servlet部分(ListServlet.java):
@WebServlet("/list")
public class ListServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String currentPageStr = request.getParameter("p");
int currentPage = 1;
if (currentPageStr != null) {
currentPage = Integer.parseInt(currentPageStr);
}
PageBean pageBean = new PageBean();
pageBean.setCurrentPage(currentPage);
pageBean.setPageSize(10); // 假设每页显示10条
pageBean.setTotalRecord(100); // 假设总共有100条记录
pageBean.setTotalPage();
List<Object> list = new ArrayList<>(); // 假数据
request.setAttribute("pageBean", pageBean);
request.setAttribute("list", list);
request.getRequestDispatcher("/list.jsp").forward(request, response);
}
}
JSP部分(list.jsp):
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>分页示例</title>
</head>
<body>
<%-- 显示数据列表 --%>
<%-- 假设这里从request获取到了list数据 --%>
<table>
<tr>
<th>ID</th>
<th>数据</th>
</tr>
<c:forEach var="item" items="${list}">
<tr>
<td>${item.id}</td>
<td>${item.data}</td>
</tr>
</c:forEach>
</table>
<%-- 分页导航 --%>
<a href="list?p=1">首页</a>
<a href="list?p=${pageBean.currentPage - 1}">上一页</a>
<c:forEach begin="1" end="${pageBean.totalPage}" var="page">
<a href="list?p=${page}">${page}</a>
</c:forEach>
<a href="list?p=${pageBean.currentPage + 1}">下一页</a>
<a href="list?p=${pageBean.totalPage}">尾页</a>
</body>
</html>
在这个例子中,我们定义了一个PageBean类来管理分页信息,在Servlet中处理分页数据,并将其转发到JSP页面进行展示。JSP页面使用JSTL标签库来显示数据列表和分页导航。这个例子提供了一个简单的框架,实际应用时需要根据具体业务逻辑进行扩展和修改。
评论已关闭