java web 分页基础

【Java】无框架增删改查+登陆+分页+事务处理综合演示web应用(含源码共享) 经过了三天的时间,艾玛终于写完了。。。这次是做一个不使用框架,用最原始的方法实现了java-jsp的web应用,栗子呢包含增删改查、登陆登出、分页、事务处理和权限管理这几个web应用的基本要素,界面就做得很烂了,除了对齐以外就没用到CSS了,也是节约时间,小D准备复习考研,闲暇抽空实在忍不住写了点儿程序,希望能够帮助到大家!      下面就先对项目结构进行一些简单的介绍,方便大家拿到源码后快速的通 阅读详情

第一步:写分页的工具类

package com.lsl.util;

import java.util.List;

/**
	 * 分页的工具类
	 * @author
	 *
	 */
public class PageUtil {
	//数据的结果集合
	private List data;
	
	//总行数
	private int rowCount;
	
	//每页显示的条数
	private int pageSize;
	
	//总页数
	private int pageCount;
	
	//当前页
	private int pageNum;
	
	//开始的下标
	private int beginIndex;
	
	//结束下标
	private int endIndex;
	
	public PageUtil(List data) {
		//得到结果集
		this.data=data;
		
		//通过结果集可以得到总行数
		this.rowCount=data.size();
		
		//通过总行数、每页显示几条数据 得出总页数 ,rowCount/pageSize如果不能整除加一
		if(this.rowCount % this.pageSize ==0) {
			this.pageCount=this.rowCount/this.pageSize;
			
		}else {
			this.pageCount=this.rowCount/this.pageSize  + 1;
		}
		//当前页默认1
		this.pageNum=1;
		
		//通过当前页、每页显示几条数据,可以得出开始于结束的下标,列如,每页显示5条数据,总11条
		//1  1-5
		//2  6-10
		//3  11
		//this.beginIndex=(this.pageNum-1) * this.pageSize+1;
		//this.endIndex=this.pageNum * this.pageSize;
		this.setPageNum(pageNum);

	}

	public List getData() {
		return data;
	}

	public void setData(List data) {
		this.data = data;
	}

	public int getRowCount() {
		return rowCount;
	}

	public void setRowCount(int rowCount) {
		this.rowCount = rowCount;
	}

	public int getPageSize() {
		return pageSize;
	}

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

	public int getPageCount() {
		return pageCount;
	}

	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}

	public int getPageNum() {
		return pageNum;
	}

	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
		//开始下标
		this.beginIndex=(this.pageNum-1) * this.pageSize+1;
		//结束下标
		this.endIndex=this.pageNum * this.pageSize;

	}

	public int getBeginIndex() {
		return beginIndex;
	}

	public void setBeginIndex(int beginIndex) {
		this.beginIndex = beginIndex;
	}

	public int getEndIndex() {
		return endIndex;
	}

	public void setEndIndex(int endIndex) {
		this.endIndex = endIndex;
	}

	@Override
	public String toString() {
		return "PageUtil [rowCount=" + rowCount + ", pageSize=" + pageSize + ", pageCount="
				+ pageCount + ", pageNum=" + pageNum + ", beginIndex=" + beginIndex + ", endIndex=" + endIndex + "]";
	}
	

}


第二步:使用工具类并通过作用域(session)保存分页得到的数据,这里保存。
在这里插入图片描述
第三步:将分页过的list通过遍历放到表格中
在这里插入图片描述

第四步:将相关信息,有几页,当前几页放到页面中,这里使用的是JSTL中的c和EL表达式
在这里插入图片描述

具体的实战实现:当我们点击对应的页码时出现相应的数据
在这里插入图片描述
①:将页面设置为a标签,这样可以跳转,这个是带参跳转,带的参数就是当前的页码数,然后跳转到我们之前存分页后的list的页面,根据页码数对list进行截取相应的数据。
在这里插入图片描述

②:当我们跳转到servlet中时,我们就要考虑分页的问题了,首先我要获取页面的信息,也就是我们刚刚带那个参数,其次我们要判断它是第几次进入的,我们不可能每一次获取相关页面的信息都要取一次list吧。

//获取页码信息
		String pageNumber = request.getParameter("pageNumber");
		
		//第一次进来
		if(pageNumber == null || "".equals(pageNumber))
		{
			//1.获取查询的参数信息
			String realName = request.getParameter("realname");
			String sex = request.getParameter("sex");
			String certTypeID = request.getParameter("certType");
			String cert = request.getParameter("cert");
			String userTypeID = request.getParameter("userType");
			
			System.out.println(realName + " " + sex + "  " + certTypeID + "  " + cert + "  " + userTypeID);
			
			//2.将信息封装到User对象
			User user = new User();
			user.setRealname(realName);
			user.setSex(sex);
			user.setCertTypeID(Integer.parseInt((certTypeID==null || certTypeID.length() ==0)?"0":certTypeID));
			user.setCert(cert);
			user.setUserTypeID(Integer.parseInt((userTypeID==null || userTypeID.length() ==0)?"0":userTypeID));
			
			//2.调用service方法完成查询
			IUserService userService = UserServiceImpl.getInstance();
			List<User> userList = userService.selectUsers(user);//所有用户信息---11条数据
			
			//2.1 分页
			PageUtil pu = new PageUtil(userList);
			System.out.println("第一次,分页信息:" + pu);
			
			//2.2 获取第一页分页的数据
			List<User> subUserList = userList.subList(pu.getBeginIndex()-1, pu.getEndIndex());    //获取【第一页1-5】数据,不包括结束位置
			
			//3.将数据保存到作用域 
			session.setAttribute("userList", userList);//所有符合条件的用户信息
			session.setAttribute("subUserList", subUserList);//所有符合条件的用户中【第一页】信息
			session.setAttribute("pu", pu);//分页信息
			
			//保存查询的参数
			session.setAttribute("selectParams", user);
		}
		//下一次进来,即点击分页页码进入
		else
		{
			//1.获取保存在session中的所有用户信息
			List<User> userList = (List<User>)session.getAttribute("userList");//所有用户信息---11条数据
			
			//2.获取保存在session中的分页信息
			PageUtil pu = (PageUtil)session.getAttribute("pu");
			pu.setPageNum(Integer.parseInt(pageNumber));//设置页码
			
			System.out.println("点击分页页码,分页信息:" + pu);
			
			//3. 获取指定页码分页的数据
			List<User> subUserList = userList.subList(pu.getBeginIndex()-1, pu.getEndIndex());    //获取【指定页码】数据,不包括结束位置

			//4.将数据保存到作用域 
			session.setAttribute("subUserList", subUserList);//所有符合条件的用户中【第一页】信息
			session.setAttribute("pu", pu);//分页信息
		}
		
		//4.跳转到页面UserManageQuery.jsp
		response.sendRedirect(request.getContextPath() + "/Admin/UserManageQuery.jsp");
		
	}

③:注意这里可能会出现一个bug toindex ,下标越界,因为我只有11条数据,在第三页时我算的时候是15条,所以越界了,这时我们进行判断就可以了,就是判断结束时的下标大于总行数时,
在这里插入图片描述
最好在工具类里面就改好,降低耦合度。

分页功能差不多了,下一篇是批量删除功能。

Java Web实训作业分析 这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。这里我的建议是,如果你至少使用或掌握其中一门框架,那是最好的,可以去刷刷相关框架的面试题,这样在面试过程中即使被问到了,也可以回答个 7788。如果这部分答好了,会给面试官留下很不错的印象。获取修改页面的新数据,传入后端之后封装为实体对象,通过修改Dao的SQL为update来进行修改,后端返回Flag(Flag=true表示修改成功,false表示修改失败)。 阅读详情

相关推荐

简化Web分页实现:pager-taglib分页标签库

随着数据量的增加,分页已成为Web应用中不可或缺的功能。Java Web分页库致力于简化分页功能的实现过程,帮助开发者提高效率,避免重复编写繁琐的代码。本文将带你进入Java Web分页库的世界,探讨其重要性与优势。在Java Web应用中,分页是处理大量数据展示的常见需求。传统的分页方式依赖于SQL语句和业务逻辑的编写,这不仅增加了代码的复杂性,也降低了开发效率。分页标签库提供了一种简便的标签式分页处理方式,它抽象了分页逻辑,允许开发者通过简单的标签调用来实现分页功能。

weixin_42466723的博客 1221

分页查询_对分页的基本数据进行封装

分页方法内部 import com.github.pagehelper.PageInfo; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class PageWrapper&lt;T&gt; implements Serializable { private...

Steriles_的博客 1441

Struts框架实现简单分页功能指南

Struts是Java EE应用中一个流行的Web层框架,它遵循MVC(Model-View-Controller)设计模式,将应用程序分为三个核心组件以实现业务逻辑与用户界面的分离。Struts简化了企业级应用的开发,尤其是在处理用户请求和展示响应方面。分页功能,是一种数据处理技术,允许用户在处理大量数据时,能够将数据分割成小块(页面)进行分批显示。这种技术在用户界面上的应用十分广泛,尤其在Web开发领域,分页处理是提高用户体验的重要组成部分。

weixin_35982453的博客 981

PageHelper 实现分页查询以及其实现原理

PageHelper 实现分页查询以及其实现原理

lianzuo123的博客 5144

Java Web基础实战:Servlet+JSP校园二手交易系统

Servlet和JSP是Java Web开发的底层核心组件,承载HTTP请求处理、会话管理、MVC分层等基础原理。其技术价值在于显式可控的执行流程与轻量级部署能力,特别适合教学实践、毕业设计及架构回溯场景。通过真实可运行的校园二手交易系统,深入解析web.xml配置驱动、Filter拦截链、PreparedStatement防注入、Session状态维持及MySQL外键约束等关键机制。项目覆盖用户认证、商品分页、订单状态机、安全存储等典型Web功能闭环,是理解传统Java EE容器生命周期与Web基础链路的

weixin_42531128的博客 249

别再为CAD和GIS数据对不上而头疼了!一份完整的ArcGIS for AutoCAD坐标系定义与数据套合指南

本文详细介绍了如何通过ArcGIS for AutoCAD插件解决CAD与GIS数据坐标系不匹配的问题,实现数据的精准套合。文章从坐标系冲突分析、插件核心功能解析到五步标准化工作流,提供了完整的解决方案,帮助工程师和设计师提升跨平台协作效率。

weixin_42531886的博客 217

分页参数 的页码

int start = getParaToInt(START, 0);//从0开始 int pageSize = getParaToInt(LENGTH, DEFAULT_PAGE_SIZE);//10条数据 /** * 获取页码 */ public int getPageNum(int start,int pageSize){ int totalPageNu

我的博客 907

别再只调IoU了!给YOLOv8换上NWDLoss,实测小目标检测精度提升明显

本文深入探讨了YOLOv8在小目标检测中的优化策略,重点介绍了NWDLoss(Normalized Wasserstein Distance Loss)的应用优势。通过对比实验证明,NWDLoss能有效解决传统IoU损失函数的局限性,显著提升小目标检测精度,在遥感影像和交通监控等场景中表现尤为突出。文章提供了详细的代码实现和训练技巧,帮助开发者快速集成这一先进技术。

weixin_29072299的博客 280

PageHelper获取总数

使用PageHelper获取不到总数问题 第一步:设置分页数据startPage Page page = PageHelper.startPage(dataTablesFrom.getPageNum(), dataTablesFrom.getPageSize()); 第二步:查询数据库 List<Object> list = selectAll(); 第三步:获取总条数 问题:使用page.total()获取总数为0 解决:使用PageInfo,分页信息包含在info里面 PageInfo

Echouuu的博客 1万+

R语言 | 关联规则

关联规则(AssociationRules)是无监督的机器学习方法,用于知识发现,而非预测。 关联规则的学习器(learner)无需事先对训练数据进行打标签,因为无监督学习没有训练这个步骤。缺点是很难对关联规则学习器进行模型评估,一般都可以通过肉眼观测结果是否合理。 关联规则主要用来发现Pattern,最经典的应用是购物篮分析,当然其他类似于购物篮交易数据的案例也可以应用关联规则进行模式发现。

I think so I am 10万+

企业微信开发007_域名主体校验未通过,需配置备案主体与当前企业主体相同或有关联关系的域名_企业内部自建应用开发_配置可信域名_回调URL_可信IP---企业微信开发009

因为我这个企业微信是,已经注册了服务商了,所以我又注册了一个不是服务商的测试企业,没有实名认证的,去试了试。而且,网络上找的教程,都是不够详细的,还是会碰到各种各样的问题,记录下来,为后来者提供便利。首先我用natapp.cn 申请了一个免费的域名,然后去,一个,企业微信上去配置,注意。我这个域名,的主体,可能是域名服务商,比如阿里域名 等等的 不是一般的企业域名。我这个企业微信,是开通了服务商的,企业微信,右上角有服务商管理后台的。到时候,直接用,他们自己企业注册的域名,已经备案的再去尝试,

添柴程序猿的专栏 1699

Java Web(十一) 分页功能的实现

      虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果。                             --WH   一、分页的思路     首先我们得知道写分页代码时的思路,保持思路清晰,有步骤的进行,才能行云如水。先来看看分页的效果                            ...

weixin_33827590的博客 1618

嵌入式软件工程师面试题目整理(一)

文章目录嵌入式软件工程师面试题目整理(一)Arm有多少32位寄存器?Arm2440和6410有什么区别CPU,MPU,MCU,SOC,SOPC联系与差别上拉&下拉&高阻态串口协议讲一讲RS232和RS485通讯接口有什么区别IIC时序图画一下,IIC有哪些状态,给一个字节,将它发送出去。IIC有什么注意事项?有没有用I/O模拟IIC,如果有需要注意什么?为什么2440的内存起始地址是3后面7个0呢?为什么6410的内存起始地址是5后面7个0呢?内存管理有什么看法?(MMU)锁有哪些?有什么注

嵌入式与Linux那些事的博客 7883

Java Web基础入门第五十讲 学生信息查询之分页练习

在上一篇博客客户关系管理系统之分页查询中,我们就完成了客户信息的分页查询,现在我们趁热打铁来实现学生信息的分页查询,做这个练习来巩固我们的知识。创建MVC架构的Web项目在Eclipse中新创建一个day15_page项目,导入项目所需要的开发包(jar包),创建项目所需要的包,在java开发中,架构的层次是以包的形式体现出来的。 项目所需要的开发包(jar包): 序号 开发包名称

李阿昀的博客 3552

华为OD新系统机试真题 - 失灵的键盘(C/C++/Py/Java/Js/Go)

华为OD新系统机试真题 【失灵的键盘】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD4月15号机试真题【失灵的键盘】

qq_45776114的博客 1071

【以太网硬件一】802.3xx标准怎么这么多?它们有什么关系?

IEEE 802.3标准发展历史简介

highman110的博客 5018

Java Web基础骨架:手写Servlet+JDBC实现登录CRUD分页搜索

Java Web开发的核心在于理解HTTP请求响应、数据库交互与服务端安全控制等基础原理。本文围绕经典Servlet+JDBC技术栈,深入解析身份认证(登录)、数据操作(CRUD)、性能优化(数据库级分页)、精准检索(多级搜索)四大工程闭环的实现逻辑。通过剥离Spring Boot等框架黑盒,回归原生API设计,帮助开发者建立SQL语感、事务边界意识和会话安全认知。适用于高校实训、转行入门及面试突击场景,特别强调BCrypt密码哈希、PreparedStatement防注入、Filter统一鉴权、LIMIT

weixin_32705179的博客 233

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java Web基础入门第四十九讲 客户关系管理系统之分页查询

上一篇博客JDBC实现客户关系管理系统模块已经基本上开发好了查看客户的功能,但我们并不满足于此,在这一篇博客中,我们实现分页显示。数据库分页MySQL分页的实现:Select * from table limit M,N; M:记录开始索引位置。 N:取多少条记录。 例, limit 0,5:获取表里面第0个位置开始的5条记录(如果每页显示5条记录,则获取到第1页的5条数据) limit 5,5:如

李阿昀的博客 3737

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java怎么设置表格分页显示_javaweb--layui表格分页

本文最好是有一定javaweb 基础的人查看,你知道,一些最简单的jdbc的实际操作(CRUD)如何写出以待用.css,.js的外部模板的jsp页面;使用最基础的javaweb知识来实现Layuitabled 实现:你需要知道我们做一个javaweb的基本的包名结构com|-gx|-servlet/web/controller放 servlet 页面数据,和数据库中的数据之间的比较...

weixin_28630185的博客 507

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

java web开发基础

Java Web开发根基的「Java基础语法」部分做更细化的总结,聚焦Web场景下高频使用的语法点,而非泛泛的基础罗列。我会按「数据处理→流程控制→面向对象→集合→IO→并发」的逻辑

weixin_44143876的博客 1104

JSP基础分页

切记把MySQL connector的jar包导入项目 <% //变量声明 java.sql.Connection sqlCon; //数据库连接对象 java.sql.Statement sqlStmt; //SQL语句对象 java.sql.ResultSet sqlRst; //结果集对象 java.lang.String strCon; //数据库连接字

111

分页简介.

分页简介 分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位,在Java中是一种特别常见的现象,下面我将一点一点的带着大家来分析一下分页。 理解分页 分页无非就是在服务器端得

m0_58259839的博客 680

JavaWeb基础-分页查询

开始写这个的时候,我其实还在犹豫,因为我的第一篇博客是在一个多月前,那时候还展望着每天坚持写一篇博客,这样自己就能更好的巩固知识,便于自己知识技能的提高;然而事实是我写了第一篇之后,第二天就没写了.说起这个真是有点丢人呢!作为一个接触学习java不久的新手来说,对于许多知识都不太清楚,很多东西都还是一知半解的,所以有时候就犹豫了写博客不知道写些啥;现在这种情况适不适合写博客呢?具体的该不该也就不管它

1085

java web Spring mvc 分页实现

分页实现的效果: ///////// /////////////////////////////////////////////////////// //////////////////////////////////////////////// //////////...

chuji3953的博客 129

【Web】分页简单实现

web分页   为什么需要分页? 一、数据方面的原因 大量查询的数据耗时比较严重。 二、增强用户使用体验需求 用户更方便的查询和展示他所需要的数据。   常见分页方式:传统分页方式和下拉式分页方式。 采用传统的分页方式,可以明确的获取数据信息,如有多少条数据,分多少页显示。 采用下拉式分页方式,一般无法获取明确的数据数量相关的信息,但是在分页操作以后,仍然可以看到之前查询的数据

自由世界的专栏 2万+
上一篇: java web 导出Excel表格
下一篇: 那年没学懂的(java web)批量删除
噢!不杰克
博客等级 码龄7年 4443粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值