商务服务
JavaWeb 分页查询
2024-11-19 03:06

由于html不能直接从域当中直接拿数据 所以我们引入了jsp文件

数据存在了requets域当中

JavaWeb 分页查询

如果数据量很大,不可能把所有数据全部在页面展示:

数据全部在页面展示缺点:

  • SQL执行时间过长

  • 用户查看数据,滚动滚动条,用户体验不高

在实际开发中,分页查询, 实现:

sql语句: mysql分页实现: limit x,y x:开始序号(o开始)y:限制条数

前端:有页码  传递的请求参数有页码当前页码, 上一页 下一页

一页最多展示的行数 -> 页容量(可以固定,也可以让用户进行选择)

java后台:Servlet接受请求 处理请求 响应结果  service去数据库中进行查询

后台提供的响应结果

  • list行数据  list<对象> 行数据 select from 表明 limit x,y (x开始序号=(当前页码-1)*页容量y:页容量
  • 页码  pageIndex
  • 总页数(用来判断是否可以进行/到下一页面)总页数不是由前端决定 -> 由后台数据决定 ->对应的是看由多少条记录,比如我现在数据库表中只有10条记录,因为我每一页只显示5条,5就是页容量 ->总页数就是10/5    但是多了1条呢? 11/5 = 5 最好一条数据不能显示  -> 需要对其进行取余    11 / 5 = 0 ? 
  • 总记录数
  • 页容量
  • 所以我们需要求出总页数:总记录数%页容量==0?总记录数/页容量:总记录数/页容量+1   总记录数:select count(1) from 表名  而页容量是由前端传递
  • JavaWeb 分页查询
  • 封装的思维:把响应给前端的5个数据封装到一个类中:分页实体类(Page)
 

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

跨列 8列

JavaWeb 分页查询

有个问题:怎么知道有没有下一页

next不能点的问题

web层写servlet

超链接链接到servlet里面去查数据  那么就是一个get请求

1.编码处理 2.获取请求参数 得到页码 3.调用业务层内的方法 4.根据4的结果响应不同的结果(跳转页面)

JavaWeb 分页查询

JavaWeb 分页查询

null && “”  -> null && isEmpty()->双引号替代

但是向service层传的数据是int类型的,此时的pageIndex是String类型

进行数据类型转换 int pageIndex = 1;

传递页码

JavaWeb 分页查询

传递页容量

JavaWeb 分页查询

调方法

JavaWeb 分页查询

JavaWeb 分页查询

问题

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

调用业务层方法结束 但是最终数据要给到页面

怎么给呢? list.html -> list.jsp 数据放到request域中

JavaWeb 分页查询

开始实现页面的跳转

request域有数据  -> 只能请求转发

JavaWeb 分页查询

servlet结束

写:useservice里的方法  page实体类 list.jsp

写实体类:如果项目当中多出需要使用分页  这个User就不就写死了吗

使用泛型

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

当我们的项目当中很多地方都需要用到分页的时候,我们就需要用到泛型T

JavaWeb 分页查询

private List<T> records = new ArrayList<>();

private int pageIndex;

private int pageSize;

private int TotalPage

JavaWeb 分页查询

总页数不能时我们设置好的 应该是由我们计算好的

那么setTotalPages(int TotalPages)方法不能这么写

getTotalPages(){ return @ }

JavaWeb 分页查询

写一下User实例

JavaWeb 分页查询

一个Dao的方法一般只执行一条sql语句

JavaWeb 分页查询

而者两个合成一个service

Page.setPageIndex

JavaWeb 分页查询

创dao接口

JavaWeb 分页查询

创实现类

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

JavaWeb 分页查询

service写完

等到dao一写完 后台就写完了

JavaWeb 分页查询

有点不懂

JavaWeb 分页查询

或者再改改

JavaWeb 分页查询

分页查询之JSP

JSP JSP (Java Server Pages)是JavaWeb服务器端的动态资源。它与html页面的作用是相同的,显示数据和获取数据。 html转换为jsp jsp: html + java脚本,使用html展示数据,又可以编写java代码,获取数据

html转换为jsp

jsp:html+jaav脚本 既可以有html展示数据的本事 又可以编写java代码来获取数据 

jstl标签

JavaWeb 分页查询

jsp本身是一个servlet  

编写java逻辑代码 方法体内写的是java代码

<%

        写的代码 都是放在service()方法  -> 联想到servlet里面的service方法

%>

把表达式结果显示在页面 <%=表达式%>

等同于servlet的reponse.getWriter( ).print(表达式)

定义属性,方法作为Servlet的属性和方法,一般很少在servlet定义属性,方法,很少使用

<%

        private int a;

        public int a(){}

%>

JavaWeb 分页查询

生成一个list.jsp

page指令  也是一个标签  是对于jsp页面的设置 声明写的是java脚本

jsp是一个类,你写一个java脚本在里面  也可以导包(比如你在脚本里面用到List

集合)list.html -> list.jsp那么这个转换就很简单了

使用java脚本呢获取域当中的数据

留一个

JavaWeb 分页查询

步骤

从域中获取数据 request.getAttribute("page") -> 返回的是Object  需要转换

page在jsp里面是一个特殊的关键字

JavaWeb 分页查询

拿到数据之后开始循环遍历

遍历List集合拿到的是一个User对象

JavaWeb 分页查询

JavaWeb 分页查询

站在用户角度上:用户就是看到首页和点击跳转后的页面,但是

从后方人员来看  -> 用户带年纪查询  -> 发起请求到ListServlet  ListServlet调用service,service调用dao里面的方法->dao1操作数据库 -> 最后ListServlet请求转发到list.jsp,这才是后方人员干的事  没有ListServlet就没有数据,这是我们需要了解的web流程

JavaWeb 分页查询

改一改下面的功能

JavaWeb 分页查询

JavaWeb 分页查询

从users得到总页数

JavaWeb 分页查询

如果i是当前页码  加上一个active选择器

if(i == userPage.getPageindex())

JavaWeb 分页查询

注意当前页不可以再点击发起请求了->超链接设置一下跳转

JavaWeb 分页查询

作业:请你完成上一页和下一页

如果是第一页不能点 同理下一页  如果不是最后一页和第一页那么都可以点

    以上就是本篇文章【JavaWeb 分页查询】的全部内容了,欢迎阅览 ! 文章地址:http://xiaoguoguo.dbeile.cn/news/1014.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 多贝乐移动站 http://xiaoguoguo.dbeile.cn/mobile/ , 查看更多   
最新新闻
李子柒停更期间拜访了许多非遗传人,前公司:双方已完全和解
李子柒回归依然是顶流!在长达1200多天的停更之后,11月12日,知名网红在社交平台公开更新两条视频,表示“把这份祝愿送给看到视
李子柒复出热搜背后的文化传承探索
自从李子柒在社交媒体上停更以来,粉丝们一直在翘首以待她的再次亮相。近日,一段关于李子柒参与熊猫家园宣传活动的官方视频意外
震撼!李子柒三年后回归,热搜霸榜揭秘背后故事
2024年11月12日,李子柒再次引发热议,她的最新视频正式上线,并引发了一波热潮。时隔三年,她的回归不仅令无数粉丝为之振奋,更
火年还是水年?2025年属蛇人的命运如何
每个人的命运都各有不同,十二生肖的性格差异很大,即便是同一个属相,不同年份出生的人,命运也会有所不同。随着2025年的到来,
李子柒回归:她的“王者归来”揭示了哪些社会密码?
在社交媒体上曾风靡一时的李子柒,最近以全新的创作宣告回归,瞬间点燃了网络的热情。这位因其对传统文化的深刻理解而备受喜爱的
李子柒复出,背后的IP运营启示
在停更3年之后,依靠传统文化视频创作火遍国内外网络的李子柒再次更新了视频。11月,李子柒久违发布视频,仅仅几小时播放量就破
李子柒复出:从宁静乡村到数字流量的传奇旅程
在社交媒体上,一位女子以她独特的田园生活视频与传统技艺作品,深深触动了亿万观众的心,她就是李子柒。2024年11月12日,她的正
三年归来仍是顶流,李子柒给所有跨境商家上了一课
文:晓鹏,编辑:赵元,出品:增长工场离开的三年,无数人想成为她们、替代她们,但无一成功。李子柒离开的三年,是中国企业出海
2025年火运最旺的属相
2024年已经接近尾声了,相信之前运势不利的朋友也感到疑惑,为何进入九紫离火运了,自己的事业和财运仍然没有好起来?但实际上,
张了凡:2025年普通人,最赚钱的3个行业
​​嘿,朋友们,你们知道吗?明年开始,有三个行业简直是赚钱的黄金赛道,普通人只要踩中其中一个,身价翻个10倍都不是梦! 不