您的位置:首页 > Web前端 > JavaScript

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

2012-11-01 23:09 218 查看
在传智播客学的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}显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: