传智播客---分页技术 与 jstl常用标签

在传智播客学的web快要完了,马上就要进入框架了,进过这些天的学习,老师的补习,我们都学的很扎实,因为老师说过,学习框架就的把基础学习好你才能学进去,所有传智播客的老师很辛苦的教大家,为学框架打造了一个很好的基础。今天跟一个已经上班的朋友聊天,我跟他讲了许多我所学到的知识,本以为我可以从他那学到点东西,结果.....他从我这学到很多东西。在一次正面了传智播客的能力,我确信我的未来一定是美好的!!!

给大家在晒晒我今天学到的知识,还是那句话,不要羡慕哦,来了传智播客你也一样哦!!!

分页查询:由于信息量太多一页显示不完,这时需要分页显示信息
分页查询分为:
1)物理分页
 1.物理分页,根据数据库对SQL语句的支持,在SQL中通过关键字实现分页查询 (在SQL执行时,只查询当页显示需要的数据)
 每个数据库都会提供一个关键字,mysql提供的关键字:limit; oracle提供的关键字:rownum 行号
 语法:select * from 表名 limit 开始位置,查询长度;返回的就是查找到的指定长度的数据
 * 开始记录索引,数据表记录从0开始,长度,从开始位置查询多少条数据
 * 关键点根据每页记录条数和第几页 计算开始记录索引  ------- 开始记录索引 = (页码-1)* 每页记录条数
2)逻辑分页
 1.逻辑分页,查询数据库时,一次性查询所有数据,在业务逻辑层中根据分页需要截取需要的数据,数据一般是在一个List集合中
 基本的算法
 int start = (页码 - 1) * 每页显示的行数;
 int end = 页码 * 每页显示的行数;
 通过获得的开始位置和结束位置就可以通过List集合中的subList(start,end); 截取需要的数据
注意:对于大规模数据不能使用逻辑分页,当数据库数据量多时如果将数据全部取出会造成内存溢出现象,一般这两种分页在企业中通常结合使用,先采用物理分页,读取出一部分数据,在通过逻辑分页获取内存中物理分页获取出的数据。
在企业中一般是,比如分页查询数据表,每页10条,显示第一页,物理分页会先查询前5页的数据, 将第一页显示,其余4页缓存起来 ,以后逻辑分页查询,不用再连接数据表,从缓存中取出前5页数据
jstl:C标签库的一些常用标签介绍
<c:out value = "语句"></c:out>输出value的值

<c:set var = "x" value = "10" scope = "page"/>scope代表存储的地方,可以将一个值存到四个范围

<c:set target = "${对象}" property="属性名" value = "值"></c:set>可以设置四个域中对象的属性值

<c:out value = "${m}"></c:out>可以输出一个变量

<c:out value = "<a href = 'xxxx'>点点</a>"/>可以将html转义成文本 escaoeXml = true/false 设置是否转义

<c:out value = "${xxx}" default = "默认"></c:out>如果取值不存在那么就是默认

<c:remove var = "x" scope = "四个域对象"/>删除四个域中的属性

<c:eatch var = "e">如果在c:eatch标签中出现异常那么异常就被封装到了指定的变量名 E 中被打出在页面</c:eatch>

<c:if test = "${empty xx}"/>判断xx是否存在,当前是不存在的情况下

<c:if test = "${not empty xx}"/>判断xx是否存在,当前是存在的情况下

<c:if test = "${可以是条件表达式}"/>

<c:chose在c:chose标签中可以添加c:when和c:otherwise,c:when代表if,c:otherwise代表else
<c:when test = "${条件表达式}">执行的语句</c:when>
     .
   可以添加多个C:when标签  
     .
     .
<c:otherwise>执行语句</c:otherwise>
</c:chose>

<c:forEach var = "x" items="${数组}">
 ${x}将数组赋值到x然后将x遍历输出
</c:forEach>

<c:forEach var = "x" items="${List}">
 ${x}将List集合赋值给x然后将集合中的元素遍历输出
</c:forEach>

<c:forEach var = "x" items = "${Map}">
 ${x.key} ${x.value}将Map集合中的元素赋值给x然后通过x就可以取到Map中的key和value
</c:forEach>

<c:forEach begin = "1" end = "10" step = "1" var = "x">
相当于for循环:从1开始循环,循环到10,循环的步是1,将每次循环到的值赋给x,x可以再输出
</c:forEach>

<c:set var = "x" values = "a.b.c" scope = "page">
<c:forTokens items = "${x}" delims = "." var = "y">将字符串x以‘.’进行切割y代表切割后的值
 ${y}
</c:forTokens>

<c:import url = "资源路径" context = "工程名"></c:import>引入一个页面
<C:import url = "资源路径" context = "工程名" var = "x" scope = "page"></c:import>引入一个页面但是不显示,如果想显示可以通过${x}显示 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值