推广 热搜: 未来    中国  企业  服务  政策  公司  快速  上海  设备 

JavaWeb 分页查询

   日期:2024-11-19     作者:xasic    caijiyuan   评论:0    移动:http://xiaoguoguo.dbeile.cn/mobile/news/1014.html
核心提示:由于html不能直接从域当中直接拿数据 所以我们引入了jsp文件 数据存在了requets域当中 如果数据量很大,不可能把所有数据全部在页

由于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 分页查询

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

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

本文地址:http://xiaoguoguo.dbeile.cn/news/1014.html    多贝乐 http://xiaoguoguo.dbeile.cn/ , 查看更多
 
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号