JavaWeb中的简单分页完整代码(推荐)

时间:2021-05-19

这次主要是讲解一下通过登录后对得到的数据进行分页,首先我们新建一个登录页面login.jsp,因为我们主要学习一下分页,所以登录验证的部分不再阐述,主要代码如下:

<form action="pageServlet">用户名:<input type="text" name="username"><br>密&nbsp;码:<input type="text" name="password"><br><input type="submit" value="提交"></form>

首先建立实体类User.java并添加get和set方法:

public class User {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

我们可以看到form表单是提交到pageServlet中,所以我们新建一个PageServlet,并在Servlet中获取到数据,同时做一些分页的准备,具体含义可以参照注释理解,PageServlet代码:

public class PageServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {List<User> list = new ArrayList<User>();// 在这里我不再连接数据库而是用虚拟的数据进行测试效果,小伙伴可以连接数据库查询到之后返回一个listfor (int i = 1; i < 7; i++) {User user1 = new User();user1.setUsername("第" + i + "个用户名");user1.setPassword("第" + i + "密码");list.add(user1);}HttpSession session = request.getSession();// 将数据存到session中以便于在前台获取session.setAttribute("userList", list);//获取当前页的页数并转为int类型,最终将数据存到session中int pageNos;if (request.getParameter("pageNos") == null|| Integer.parseInt(request.getParameter("pageNos")) < 1) {pageNos = 1;} else {pageNos = Integer.parseInt(request.getParameter("pageNos"));}session.setAttribute("pageNos", pageNos);// 定义总页数并存到session中int countPage = 3;// 在实际开发中我们的总页数可以根据sql语句得到查询到的总条数,然后用总条数除每页的条数得到总页数session.setAttribute("countPage", countPage);request.getRequestDispatcher("index.jsp").forward(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}}

在上述代码中我们最终将转发到index.jsp页面,此时我们所有的数据都将显示在index.jsp中,用JSTL和EL表达式获取得到,index.jsp主要代码如下:

<body><c:forEach items="${userList}" var="user" begin="${(pageNos-1)*2 }"end="${pageNos*2-1}"><center><div>${user.username}</div></center><center><div>${user.password}</div></center></c:forEach><center><c:if test="${pageNos>1 }"><a href="pageServlet?pageNos=1" >首页</a><a href="pageServlet?pageNos=${pageNos-1 }">上一页</a></c:if><c:if test="${pageNos <countPage }"><a href="pageServlet?pageNos=${pageNos+1 }">下一页</a><a href="pageServlet?pageNos=${countPage }">末页</a></c:if></center><form action="pageServlet"><h4 align="center">共${countPage}页 <input type="text" value="${pageNos}" name="pageNos" size="1">页<input type="submit" value="go"></h4></form></body>

第二行中我们用<c:forEach >对session.setAttribute();中的内容进行获取。注意,这里我默认是每页两条数据,所以是(pageNos-1)*2,如果每页N条数据则需将2改为N,当然N也可以从后台Servlet中获取得到。

同时,因为我们在index.jsp中用了JSTL表达式,所以记得要导入引用:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

到这里我们就完成了一个简单的分页,快去试试吧。

以上所述是小编给大家介绍的JavaWeb中的简单分页完整代码(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章