商务服务
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/ , 查看更多   
最新新闻
手机降低分辨率(手机降低分辨率能否提高性能)
  关于手机降低分辨率的问题探讨  随着智能手机的普及,我们越来越多地关注手机的各种性能,其中分辨率是一个重要的指标。然
手机流量 英语(手机流量英文怎么说)
  Mobile Data Traffic in English  随着科技的快速发展,智能手机已经成为了我们日常生活中不可或缺的一部分。与此同时,手
手机自动清理内存(手机自动清理内存垃圾)
  关于手机自动清理内存的重要性及其优势  随着智能手机的普及,我们的生活越来越离不开手机。然而,随着手机使用时间的增长
荣耀最强手机(荣耀顶级手机)
  荣耀最强手机:科技与艺术的完美结合  在当今这个高速发展的时代,智能手机已经成为了我们日常生活中不可或缺的一部分。而
一百万的手机(一百万的手机什么样)
  《一百万的手机》:奢华与科技的完美结合  随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。然而,
华为最好的一款手机(华为最好的一款手机是什么型号)
  华为最好的一款手机  华为作为全球知名的科技公司,其手机产品一直备受关注。随着技术的不断进步和市场的竞争日益激烈,华
安卓手机铃声软件(安卓手机铃声软件哪个最好)
  安卓手机铃声软件:多样选择与个性化体验  随着科技的快速发展,智能手机已经成为我们日常生活中不可或缺的一部分。铃声作
怎么用手机发qq邮箱(怎么用手机发qq邮箱文件)
  如何使用手机发送QQ邮箱  在当今信息化的时代,手机已经成为我们日常生活中不可或缺的一部分。其中,QQ邮箱作为广泛使用的
手机qq删除好友(手机qq删除好友怎么找回来)
  关于《手机QQ删除好友》的文章  随着社交媒体的普及,QQ作为中国最受欢迎的社交软件之一,已经成为人们生活中不可或缺的一
手机监控定位(父母如何定位子女的手机)
  关于《手机监控定位》的文章  随着科技的快速发展,手机已经成为了我们日常生活中不可或缺的一部分。然而,随之而来的是一

loading