JavaWeb 简单分页实现代码
JavaWeb简单分页的实现:
这次主要是讲解一下通过登录后对得到的数据进行分页,首先我们新建一个登录页面login.jsp,因为我们主要学习一下分页,所以登录验证的部分不再阐述,主要代码如下:
<formaction="pageServlet"> 用户名:<inputtype="text"name="username"><br> 密 码:<inputtype="text"name="password"><br> <inputtype="submit"value="提交"> </form>
首先建立实体类User.java并添加get和set方法:
publicclassUser{ privateStringusername; privateStringpassword; publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } }
我们可以看到form表单是提交到pageServlet中,所以我们新建一个PageServlet,并在Servlet中获取到数据,同时做一些分页的准备,具体含义可以参照注释理解,PageServlet代码:
publicclassPageServletextendsHttpServlet{ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ List<User>list=newArrayList<User>(); //在这里我不再连接数据库而是用虚拟的数据进行测试效果,小伙伴可以连接数据库查询到之后返回一个list for(inti=1;i<7;i++){ Useruser1=newUser(); user1.setUsername("第"+i+"个用户名"); user1.setPassword("第"+i+"密码"); list.add(user1); } HttpSessionsession=request.getSession(); //将数据存到session中以便于在前台获取 session.setAttribute("userList",list); //获取当前页的页数并转为int类型,最终将数据存到session中 intpageNos; 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中 intcountPage=3; //在实际开发中我们的总页数可以根据sql语句得到查询到的总条数,然后用总条数除每页的条数得到总页数 session.setAttribute("countPage",countPage); request.getRequestDispatcher("index.jsp").forward(request,response); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ } }
在上述代码中我们最终将转发到index.jsp页面,此时我们所有的数据都将显示在index.jsp中,用JSTL和EL表达式获取得到,index.jsp主要代码如下:
<body> <c:forEachitems="${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:iftest="${pageNos>1}"> <ahref="pageServlet?pageNos=1">首页</a> <ahref="pageServlet?pageNos=${pageNos-1}">上一页</a> </c:if> <c:iftest="${pageNos<countPage}"> <ahref="pageServlet?pageNos=${pageNos+1}">下一页</a> <ahref="pageServlet?pageNos=${countPage}">末页</a> </c:if> </center> <formaction="pageServlet"> <h4align="center">共${countPage}页 <inputtype="text"value="${pageNos}"name="pageNos"size="1">页 <inputtype="submit"value="go"> </h4> </form> </body>
第二行中我们用<c:forEach>对session.setAttribute();中的内容进行获取。注意,这里我默认是每页两条数据,所以是(pageNos-1)*2,如果每页N条数据则需将2改为N,当然N也可以从后台Servlet中获取得到。
同时,因为我们在index.jsp中用了JSTL表达式,所以记得要导入引用:
<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
到这里我们就完成了一个简单的分页,快去试试吧。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!