javaweb分页显示_java分页查询原理思路

javaweb分页显示_java分页查询原理思路效果图如下:实现步骤:1.创建实体User.class,参考代码如下:publicclassUser{ privateStringname; privateintage; privateStringgender; publicStringgetName(){ returnname; } publicvoidsetName(Stri…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

效果图如下:

javaweb分页显示_java分页查询原理思路

实现步骤:

1.创建实体User.class,参考代码如下:

public class User {
	private String name;
	private int age;
	private String gender;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public User(String name, int age, String gender) {
		super();
		this.name = name;
		this.age = age;
		this.gender = gender;
	}

	public User() {
	}

}

2.创建分页模型PageBean.class,参考代码如下:

public class PageBean<T> {
	
	private int pageNum; 
	private int pageSize; 
	private int totalRecord;  
	private int totalPage;  
	private List<T> list;
	private int start;
	private int end;
	private int fromIndex;
	private int toIndex;

	public PageBean(int pageNum, int pageSize, int totalRecord) {
		this.pageNum = pageNum;
		this.pageSize = pageSize;
		this.totalRecord = totalRecord;
		fromIndex=(pageNum-1)*pageSize;
		toIndex=pageNum*pageSize>totalRecord?totalRecord:pageNum*pageSize;

		if (totalRecord % pageSize == 0) {
			this.totalPage = totalRecord / pageSize;
		} else {
			this.totalPage = totalRecord / pageSize + 1;
		}
		start = 1;
		end = 5;
		if (totalPage <= 5) {
			end = this.totalPage;
		} else {
			start = pageNum - 2;
			end = pageNum + 2;

			if (start < 1) {
				start = 1;
				end = 5;
			}
			if (end > this.totalPage) {
				end = totalPage;
				start = end - 5;
			}
		}
	}

	public int getPageNum() {
		return pageNum;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getTotalRecord() {
		return totalRecord;
	}

	public int getFromIndex() {
		return fromIndex;
	}

	public void setFromIndex(int fromIndex) {
		this.fromIndex = fromIndex;
	}

	public int getToIndex() {
		return toIndex;
	}

	public void setToIndex(int toIndex) {
		this.toIndex = toIndex;
	}

	public void setTotalRecord(int totalRecord) {
		this.totalRecord = totalRecord;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public List<T> getList() {
		return list;
	}

	public void setList(List<T> list) {
		this.list = list.subList(fromIndex, toIndex);
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	public int getEnd() {
		return end;
	}

	public void setEnd(int end) {
		this.end = end;
	}

}

3.创建jsp页面,参考代码如下:

/**
 *index.jsp
 */
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
    </head>
    <body>
        <a href="${pageContext.request.contextPath }/main">分页显示</a>
    </body>
</html>

/**
 *main.jsp
 */
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript"
	    src="${pageContext.request.contextPath}/jquery/jquery.min.js"></script>
        <script type="text/javascript">
	    function gos() {
		var pageNum = $.trim($("#pageNum").val());
		if(isNaN(pageNum)){
			alert("输入的不是数字 ,请输入数字!");
			return ;
		}
		if(pageNum==""){
			alert("输入为空,请重新输入!");
			return ;
		}
		if(pageNum<1||pageNum>${requestScope.pageBean.totalPage}){
			alert("超出范围,请重新输入!");
			return ;
		}
            location.href="${pageContext.request.contextPath}/main?pageNum="+pageNum;
	}
        </script>
        <title>分页显示</title>
    </head>
    <body>
	<center>
		<table width="40%" style="text-align:center">
			<tr>
				<th>姓名</th>
				<th>性别</th>
				<th>年龄</th>
			</tr>
			<c:forEach items="${requestScope.pageBean.list }" var="i">
				<tr>
					<td>${i.name }</td>
					<td>${i.gender }</td>
					<td>${i.age }</td>
				</tr>
			</c:forEach>
		</table>
	</center>
	<br />
	<center>
	<a href="${pageContext.request.contextPath}/main?pageNum=1">首页</a>
	<c:if test="${requestScope.pageBean.pageNum ==1}">
		<c:forEach begin="${requestScope.pageBean.start}"
			end="${requestScope.pageBean.end}" var="i">
			<c:if test="${requestScope.pageBean.pageNum == i}">
                        ${i}
                    </c:if>
			<c:if test="${requestScope.pageBean.pageNum != i}">
				<a href="${pageContext.request.contextPath}/main?pageNum=${i}">${i}</a>
			</c:if>
		</c:forEach>
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum+1}">下一页</a>
	</c:if>

	<c:if
		test="${requestScope.pageBean.pageNum > 1 && requestScope.pageBean.pageNum < requestScope.pageBean.totalPage}">
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum-1}">上一页</a>
		<c:forEach begin="${requestScope.pageBean.start}"
			end="${requestScope.pageBean.end}" var="i">
			<c:if test="${requestScope.pageBean.pageNum == i}">
                        ${i}
                    </c:if>
			<c:if test="${requestScope.pageBean.pageNum != i}">
				<a href="${pageContext.request.contextPath}/main?pageNum=${i}">${i}</a>
			</c:if>
		</c:forEach>
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum+1}">下一页</a>
	</c:if>

	<c:if
		test="${requestScope.pageBean.pageNum == requestScope.pageBean.totalPage}">
		<a
			href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum-1}">上一页</a>
		<c:forEach begin="${requestScope.pageBean.start}"
			end="${requestScope.pageBean.end}" var="i">
			<c:if test="${requestScope.pageBean.pageNum == i}">
                        ${i}
                    </c:if>
			<c:if test="${requestScope.pageBean.pageNum != i}">
				<a href="${pageContext.request.contextPath}/main?pageNum=${i}">${i}</a>
			</c:if>
		</c:forEach>
	    </c:if>
	    <a
		href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.totalPage}">尾页</a><br><br>
	跳转到
	    <input type="text" id="pageNum" size="1px"></input>页
	    <a href="javascript:gos()">确定</a>, 共[${requestScope.pageBean.totalPage }]页,[${requestScope.pageBean.totalRecord}]条记录
	</center>
    </body>
</html>

4.创建Servlets.class,参考代码如下:

@WebServlet("/main")
public class Servlets extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String page = request.getParameter("pageNum");
		int pageNum = Integer.parseInt((page == null ? "1" : page));
		int pageSize = 5;
		Service s = new Service();
		PageBean<User> pb = s.findAll(pageNum, pageSize);
		request.setAttribute("pageBean", pb);
		request.getRequestDispatcher("/main.jsp").forward(request, response);
	}
}

5.创建Service.class,参考代码如下:

public class Service {
	public PageBean<User> findAll(int pageNum, int pageSize) {
		UserDao userDao = new UserDao();
		List<User> users = userDao.findAll();
		int totalRecord = users.size();
		PageBean<User> pb = new PageBean<>(pageNum, pageSize, totalRecord);
		pb.setList(users);
		return pb;
	}
}

6.创建UserDao.class,参考代码如下:

public class UserDao {
	List<User> users=new ArrayList<>();
	User user;
	public List<User> findAll(){
		for(int i=1;i<99;i++){
			user=new User("name-"+i, (int)(100*Math.random()), (int)(10*Math.random())%2==1?"男":"女");
			users.add(user);
		}
		return users;
	}
}

需注意的问题:

1.需在WebContent下创建文件夹jquery,在他里面放入jquery.min.js这个文件。否则跳转功能异常。

2.index.jsp与main.jsp都在WebContent文件夹下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188223.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月17日 上午10:46
下一篇 2026年4月17日 上午10:52


相关推荐

  • Python实现五子棋人机对战[通俗易懂]

    Python实现五子棋人机对战[通俗易懂]本文转载自数据札记倌,详情可以扫描下方二维码:五子棋是常见的一款小游戏,五子棋问题是人工智能中的一个经典问题。这篇文章主要介绍了python版本五子棋的实现代码,大家可以做个参考,与我的傻儿子对弈一下。简述虽然计算机已经几乎激活成功教程了五子棋的取胜秘籍,甚至给出了取胜的具体方案,然而,对人来说,五子棋还是非常有玩头的。我们往往有五子棋的技巧性和全局观远远比不上象棋,围棋之类的感觉:这个真不一定,先说技…

    2022年6月22日
    69
  • openclaw如何调用本地大模型,小龙虾自力更生

    openclaw如何调用本地大模型,小龙虾自力更生

    2026年3月13日
    3
  • DLL注入explorer.exe进程[通俗易懂]

    DLL注入explorer.exe进程[通俗易懂]**DLL注入explorer.exe进程**  最近一直在学习dll注入远程进程的相关知识,于是有了这篇文章。通过注入的方式会运行程序,在资源管理器中是看不到,相关的进程的,这为程序的隐藏提供了极大的便利。一、新建dll动态链接库,然后在dllmain.cpp文件中的“caseDLL_PROCESS_ATTACH:”下输入当你dll被进程加载时要执行的代码。这里我们用“Messag…

    2022年5月17日
    51
  • MATLAB GUI实现计算器(设计)「建议收藏」

    MATLAB GUI实现计算器(设计)「建议收藏」1.先打开matlab新建GUI文件2.选择路径(左边是默认的不用改)然后点击ok3.此时界面会弹出一个小框4.建立计算器界面(贴上我设计的界面,不许嘲笑我的设计)5.细致讲解一下,这里的按键和显示框的是怎么实现的A.显示框:选择edittext在右边屏幕拉取即可如图所示,新建两个即可,左边作为输入屏,右边作为输入结果的显示屏双击该框,…

    2022年5月2日
    95
  • sso单点登录系统实现原理(oauth2 单点登录原理)

    单点登录SSO(SingleSignOn)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因

    2022年4月14日
    178
  • CreateJS-EaselJS文档翻译

    CreateJS-EaselJS文档翻译EaselJS EaselJSjavas 库 为 canvas 提供了一个保留的图形模式 包括 一个完整的分层显示列表 一个核心的交互模型 以及一些帮助类 使得 Canvas 中的 2D 图形更容易处理 Ea stlJS 为使用 HTML5Canvas 的丰富图形和交互性 提供了直接的解决方案 开始 要开始使用 EaselJS 创建一个包装了 Canvas 元素 的 Stage

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号