商务服务
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/ , 查看更多   
最新新闻
原创浪姐全员机场走秀,61岁叶童白发飒爽,老钱风穿搭气质压全场
凌晨五点,完成了《浪姐6》的首次公演录制,姐姐们全员现身机场,一个个都自带明星气场,让整个机场都星光璀璨。其中,最亮眼的
金饰品价飙到941元,中信证券:行情可能仍未结束
现货黄金周一高开5美元,将历史新高刷新至3090美元/盎司。国内金饰价格也随之上扬,黄金品牌周生生足金饰品报价941元/克,相比28
不管谁打来电话,这5种电话不要随意接听,立马挂断
以下是文章的改写版本:这些以数字开头的陌生来电往往是推销或诈骗电话。骗子通过国外的虚拟号码平台伪造来电,骗取国内用户回拨
疯狂追星:村民开拖拉机要赵薇签名 郭德纲遭强吻
  中新网11月4日电(罗攀) 3日凌晨,韩国男团EXO成员灿烈在微博透露,自己抵达上海后,遭到约20辆粉丝车尾随,险些造成交通事故
数字赋能“渝货出海” 重庆四部门保驾护航
近日,重庆市政府口岸物流办联合重庆海关、经济信息委、重庆市农业农村委共同签署《数字陆海新通道联合预警处置闭环管理机制》,
李佳琦真实建议:普通女生不做医美,没钱没闲别跟风
近日,知名网红主播李佳琦在直播中发表了一番引发热议的言论,称他不建议普通女生去做医美,并将其称为一个需要谨慎的消费选择。
京东“以攻为守”杀入外卖市场
2月11日,京东正式推出京东外卖,在本地生活赛道投下一颗深水炸弹。当日,京东外卖正式启动“品质堂食餐饮商家”招募,2025年5月
三态股份单日成交9.16亿 换手率超46%引关注
截至2025年4月15日收盘,报10.04元,较前一交易日上涨19.95%。当日为8.39元,盘中最高触及10.04元,最低下探至7.85元,振幅达26.
“只抽5%佣金”强势入局 京东外卖悄然上线
  近日,关于“京东外卖以‘只抽5%佣金’的旗号突然冲进外卖市场”的消息在多个社交平台上迅速传播,引发了广大网友和业内人士
匠心铸就大阪世博会中国馆——建设全过程关键节点回顾(下)
4月13日,2025年日本大阪世博会中国馆即将隆重开馆,这是中国建研院历时两年,采用全过程工程咨询服务模式,在海外落地完成的重