(Java Web程序设计基础教程)第8章分页显示.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 分 页 显 示 8.1 用户管理的分页显示 8.1.1 功能描述   假设每次只显示10个用户,这10个用户使用表格显示。在表格的上面或者下面添加分页显示的功能。每一页包括提示信息,即共有多少页,这是第几页;包括4个超链接,可以链接到第一页、上一页、下一页和最后一页(如果已经在第一页了,则不能使用“上一页”和“第一页”超链接。如果已经在最后一页了,则不能使用“下一页”和“最后一页”超链接);还包括一个输入框和按钮,可以直接跳转到某一页。 8.1.2 运行效果   第一次访问的时候,默认显示第一页,如图8.1所示。其中,“第一页”和“上一页”超链接不能使用。   当点击下一页的时候,会显示第二页的内容,而且4个超链接都可以使用,如图8.2所示。  图8.1 第一页  图8.2 不是第一页也不是最后页  图8.3 最后页 8.1.3 思路分析   分页显示与显示全部记录的功能相比,相同之处是同样都需要先得到所有的数据。不同之处在于,后者显示所有记录,前者显示部分记录。   如何控制只显示部分记录呢?这就需要知道要显示哪一部分记录,也就是从哪条记录开始显示,显示到哪条记录。要想知道要显示哪些记录,就需要知道每次显示多少记录,要显示第几页,有了这些信息才能算出从哪条记录开始显示,显示到哪条记录。所以这里需要知道两项信息:每页显示的记录数和显示第几页。   每页显示的记录数通常是定义好的,直接使用即可。显示第几页则是动态的,第一次没有人告诉你显示第几页,就显示第一页,以后显示第几页需要用户选择(通过超链接)或者输入(输入框和按钮)。   所以需要设计传递页码的“第一页”、“上一页”、“下一页”和“最后一页”以及输入框等。   另外,前面提到要显示“共有多少页”,需要根据总的记录数以及每页显示的记录数进行计算。最后一页的控制也需要知道共有多少页。   分页显示要显示部分数据,可以有三种处理方式:第一种,把所有信息全部查询出来,然后在显示的时候进行控制;第二种,只把要显示的信息返回给界面,在界面上不用控制;第三种,只查询满足条件的记录(例如第11条记录到第20条记录),通过查询语句进行控制。   对于第三种方式,不同的数据库的支持是不相同的,并且通常比较复杂,所以本书只讨论前两种方式。下面是MySQL数据库提供的实现方式:   select * from usertable limit m,n   其中,m是要显示的第一条记录,n是要显示的最后一条记录。 8.2 在界面完成分页控制   在界面完成分页控制,也就是在循环显示的时候进行控制。前面介绍的显示信息的代码是通过c:forEach控制的,所以需要在c:forEach中添加代码,只显示满足条件的记录。c:forEach标签提供了两个属性begin和end,可以控制集合中的记录从什么地方开始显示以及显示到什么地方结束。   另外在分页控制的时候需要得到总的页数,而总的页数是由总的记录数决定的,所以需要在UserBean中添加一个方法。   要在界面上完成分页控制,需要完成下面的修改:   (1) 修改UserBean,添加一个获取总页数的方法;   (2) 修改FindAllUserServlet,添加调用获取总页数的方法的代码以及传递总页数的代码;   (3) 修改userlist.jsp,添加页码控制的代码(上一页、下一页、最后一页和第一页等的控制代码),以及控制信息显示的代码。 8.2.1 修改UserBean.java   在UserBean中添加一个方法,该方法用于获取记录数。得到数据库中记录数的过程与查询所有用户信息的过程是相同的,只是SQL语句不同,最后得到的结果集不同。   SQL语句是:    select count(*) from usertable   结果集只有一行一列,所以遍历和取值比较简单。只要将指针指向第一行,然后取出第一列内容即可,代码如下:    rs.next();    int n = rs.getInt(1);   然后根据记录数计算页数,假设每页显示10条记录,则页数为:    pageCount = (n-1)/10+1;   获取总页数的方法如下:    public Integer getPageCount()    {    int pageCount=1;    // 连接对象    Connection con=null;    // 语句对象    Statement stmt=null;    // 结果集对象    ResultSet rs=nul

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档