JavaWeb中的简单分页

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

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

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

 1 public class User {
 2     private String username;
 3     private String password;
 4     public String getUsername() {
 5         return username;
 6     }
 7     public void setUsername(String username) {
 8         this.username = username;
 9     }
10     public String getPassword() {
11         return password;
12     }
13     public void setPassword(String password) {
14         this.password = password;
15     }
16
17 }

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

 1 public class PageServlet extends HttpServlet {
 2     public void doGet(HttpServletRequest request, HttpServletResponse response)
 3             throws ServletException, IOException {
 4         List<User> list = new ArrayList<User>();
 5         // 在这里我不再连接数据库而是用虚拟的数据进行测试效果,小伙伴可以连接数据库查询到之后返回一个list
 6         for (int i = 1; i < 7; i++) {
 7             User user1 = new User();
 8             user1.setUsername("第" + i + "个用户名");
 9             user1.setPassword("第" + i + "密码");
10             list.add(user1);
11         }
12         HttpSession session = request.getSession();
13         // 将数据存到session中以便于在前台获取
14         session.setAttribute("userList", list);
15         //获取当前页的页数并转为int类型,最终将数据存到session中
16         int pageNos;
17         if (request.getParameter("pageNos") == null
18                 || Integer.parseInt(request.getParameter("pageNos")) < 1) {
19             pageNos = 1;
20         } else {
21             pageNos = Integer.parseInt(request.getParameter("pageNos"));
22         }
23         session.setAttribute("pageNos", pageNos);
24         // 定义总页数并存到session中
25         int countPage = 3;
26         // 在实际开发中我们的总页数可以根据sql语句得到查询到的总条数,然后用总条数除每页的条数得到总页数
27         session.setAttribute("countPage", countPage);
28         request.getRequestDispatcher("index.jsp").forward(request, response);
29     }
30
31     public void doPost(HttpServletRequest request, HttpServletResponse response)
32             throws ServletException, IOException {
33
34     }
35
36 }

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

 1   <body>
 2     <c:forEach items="${userList}" var="user" begin="${(pageNos-1)*2 }"
 3         end="${pageNos*2-1}">
 4         <center>
 5             <div>${user.username}</div>
 6         </center>
 7         <center>
 8             <div>${user.password}</div>
 9         </center>
10     </c:forEach>
11     <center>
12     <c:if test="${pageNos>1 }">
13 <a href="pageServlet?pageNos=1" >首页</a>
14 <a href="pageServlet?pageNos=${pageNos-1 }">上一页</a>
15 </c:if>
16 <c:if test="${pageNos <countPage }">
17 <a href="pageServlet?pageNos=${pageNos+1 }">下一页</a>
18 <a href="pageServlet?pageNos=${countPage }">末页</a>
19 </c:if>
20 </center>
21 <form action="pageServlet">
22 <h4 align="center">共${countPage}页
23 <input type="text" value="${pageNos}" name="pageNos" size="1">页
24 <input type="submit" value="go">
25 </h4>
26 </form>
27   </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"%>

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

时间: 2024-09-29 00:23:53

JavaWeb中的简单分页的相关文章

在 asp.net mvc中的简单分页算法

//第一步:建立如下分页实体类:namespace MVCPager.Helpers { /// <summary> /// 简单分页算法类 /// </summary> public class Pager { public int RecordCount { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int PageCount { get { r

winform中DataGridView实现分页功能

http://liyaguang20111105.blog.163.com/blog/static/19929420220146283255809/ 在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource.BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现.红色区域是对BindingNavigator控件扩展后的效果. 具体实现过程 : //窗体构造方

MVC中使用MVCPager简单分页

一.建立数据库以及建立MVC项目 自己随便建立一个数据库,并且添加数据.我建立的数据库如下. 二.建立LINQ to SQL映射. 然后一步步点确定 三.编写代码 在Controllers中建立控制器,模板为空.建立的项目如下: 要添加视图Index 在Controller中选中Index 并且添加视图, 模板选中List, 如下 注意后台要添加对MvcPager的程序集引用,后台代码如下: using Webdiyer.WebControls.Mvc; public class Student

MVC的设计模式在JavaWeb中的实现

JSP开发模式 jsp开发模式的发展 1.模式1:(适合小型项目的技术的开发) a.第一版本,纯jsp(封装数据,处理数据,显示数据) b.第二版本,Jsp+JavaBean. jsp:收集数据,显示数据 JavaBean:封装.处理 2.模式2:servlet+Jsp+JavaBean(是mvc在java中的具体的实现,是java技术实现的具体的内容) a.servlet:负责协调jsp和javabean,获得数据,处理数据(业务逻辑),封装到javabean中,选择jsp去显示数据. b.j

Launcher源码学习 PageView中的ScrollIndicator分页指示器

看Launcher2源码忽然看到分页指示器,想看看源码,于是记录下看代码的过程 直接看代码了,Launcher2中的PageView.java可以说是Launcher2中非常核心的代码了,因为可以说Launcher2的页面显示和滑动可以说是支撑了整个Launcher风格的一个核心,因此很多人在应用中都会参考PageView的很多地方做滑动或者页面显示等操作. 今天看的是其中一个功能,分页指示器的代码,先看Launcher.xml中的布局 <include android:id="@+id/

JavaWeb中session创建于销毁的问题

今天遇到一个奇怪的问题,自己添加了一个session的监听,用来监听在线的人数.但打开浏览器时一直没有走进这个监听中来.最后百度找到了原因: 我们一直存在一个误区,javaweb中的session什么时候创建?我一直认为是第一次与浏览器建立连接的时候,就自动创建一个session.其实不然! 只有在server端的代码调用request.getSession(true)这个方法时,才互创建一个session.其中true表示,如果存在一个相同的session,则直接返回,如果不存在,则创建一个新

简单分页计算类

/// <summary> /// 简单分页列表类 /// </summary> public class SimplePagedList { /// <summary> /// 每页页面大小 /// </summary> public int PageSize { get; set; } /// <summary> /// 页面总数 /// </summary> public int TotalCount { get; set; }

Intellijidea建javaWeb以及Servlet简单实现

Intellijidea建javaWeb以及Servlet简单实现 一.创建并设置javaweb工程 1.创建javaweb工程 File --> New --> Project... 点击Project后出现如下界面,选择Java Enterprise,选中下图圈中部分 点击Next后弹出下图弹出框,设置工程名字: 创建完成后工程结构如下: 2. Web工程设置 2.1 在WEB-INF 目录下点击右键,New --> Directory,创建 classes 和 lib 两个目录 c

对于使用javaweb技术制作简单管理系统的学习

近期在老师的引导下我们学习了利用Javaweb技术制作简单的管理系统,其中涉及到的技术很多,由于大多都是自学 对这些技术的理解还太浅显但能实现一些相关功能的雏形. (一).登录功能 在登陆功能中通过与数据库的连接实现了验证用户账号与密码是否正确的功能,并添加了简易的权限设置使 不同用户登录成功后所呈现的主界面是不同的:同时还有验证码功能能检测验证码是否输入正确. 数据库: jsp: 1 <%@ page language="java" contentType="text