JavaWeb中的简单分页
这次主要是讲解一下通过登录后对得到的数据进行分页,首先我们新建一个登录页面login.jsp,因为我们主要学习一下分页,所以登录验证的部分不再阐述,主要代码如下:
<form action="pageServlet">
用户名:<input type="text" name="username"><br>
密 码:<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>();
// 在这里我不再连接数据库而是用虚拟的数据进行测试效果,小伙伴可以连接数据库查询到之后返回一个list
for (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中的简单分页的更多相关文章
- winform中DataGridView实现分页功能
WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载) 转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...
- 使用Vs2005打造简单分页浏览器(1)原创
原文:使用Vs2005打造简单分页浏览器(1)原创 使用Vs2005打造简单分页浏览器(1)原创1引言2功能3实现过程以及关键点4总结5不足之处6其他7 代码下载 1 引言很早就有搞一个浏览器的 ...
- MVC001之mvcpager简单分页
描述:用mvcpager实现简单分页功能 参考网址: http://www.cnblogs.com/iamlilinfeng/archive/2013/03/11/2951460.html http: ...
- 项目中的一个分页功能pagination
项目中的一个分页功能pagination <script> //总页数 ; ; //分页总数量 $(function () { // $("#pagination"). ...
- Dingo Api 1.0在laravel5.2中的简单应用
Dingo Api是为基于laravel的开发提供了一系列工具集,这些工具集可以帮助开发者快速构建API.Dingo Api最新的版本是2.0.0-alpha1,这个版本需要php7.0以上的php版 ...
- javaWeb中,文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- Jwt在Java项目中的简单实际应用
1.什么是jwt 双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信 ...
- javaWeb中怎么获取提交表单里面的值
在javaWeb中如何获得html文件中的表单里面的值? <!DOCTYPE html> <html> <head> <meta charset=" ...
- JavaWeb中session创建与销毁的问题
今天遇到一个奇怪的问题,自己添加了一个session的监听,用来监听在线的人数.但打开浏览器时一直没有走进这个监听中来.最后百度找到了原因: 我们一直存在一个误区,javaweb中的session什么 ...
随机推荐
- HDU5744:Keep On Movin(字符串)
题意: 给出t组测试数据,每组给出正整数n表示有n种字符,接下来给出n个数表示该种字符的数目,操作一下,使得可以构造的最小回文串字符数目最大且输出. 分析: 如果每个字符出现次数都是偶数, 那么答案显 ...
- Apache Spark Shark的简介
Shark是构建在Spark和Hive基础之上的数据仓库. 目前,Shark已经完成学术使命,终止开发,但其架构和原理仍具有借鉴意义. 它提供了能够查询Hive中所存储数据的一套SQL接口,兼容现有的 ...
- Spring Named Parameters examples in SimpleJdbcTemplate
In JdbcTemplate, SQL parameters are represented by a special placeholder "?" symbol and bi ...
- Unity3D之空间转换学习笔记(一):场景物体变换
该系列笔记基于Unity3D 5.x的版本学习,部分API使用和4.x不一致. 目前在Unity3D中,除了新的UGUI部分控件外,所有的物体(GameObject)都必带有Transform组件,而 ...
- CentOS 7安装iptables服务,以及常用命令
之前使用的是CentOS6.5,并且学艺不精,用啥查啥,用完就忘.并且网上大部分资料是基于CentOS7之前的版本. 在CentOS7中,默认的防火墙不是iptables,而是firewalld.而且 ...
- 通过yum安装Nagios
通过yum安装Nagios 2012年04月05日 ⁄ Nagios ⁄ 暂无评论 QQ空间新浪微博腾讯微博人人网更多3 前提先自行安装好Apache+php 测试环境主监控机:CentOS ...
- ldap
年1月份最新的包. 安装前的准备工作 # mkdir ?p /data/packages//习惯性的把一些包放在一个位置 # yum install openldap-devel zlib ...
- Oracle使用goldengate分别向Oracle和mysql双路的单向复制
一.Oracle分别向Oracle和mysql双路的单向复制是在: ORACLE-mysql的单向复制基础上做的.http://blog.csdn.net/q947817003/article/det ...
- [Ramda] Compose and Curry
Curry: The idea of Curry is to spreate the data from the function. Using Curry to define the functio ...
- Swift计算属性
除存储属性外,类.结构体和枚举可以定义计算属性,计算属性不直接存储值,而是提供一个 getter 来获取值,一个可选的 setter 来间接设置其他属性或变量的值. struct Point { va ...