使用JSP+JavaBean进行分页

之前一直对分页功能很排斥,因为觉得实现很简单,所以自己也没有写过分页功能。
前天面试的时候被问到了这个问题,一脸懵逼。今天好好整理了一下,做了一个比较简单而且粗糙的分页。

原理:利用mysql语句的limit来进行限制。
比如:select * from bookinfo limit 0,5
这个意思就是说,在boolinfo表中从0条记录中开始查找5条记录。

从这个思路进行下去,首先存储20条记录,
这里写图片描述

创建一个jsp页面


<%@page import="java.sql.ResultSet"%>
<%@page import="com.mysql.jdbc.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="com.hu.dao.JDBCbean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图书信息</title>
</head>
<body>
    <%
        int nextPage;
        int pageSize=5;
        String curpage = request.getParameter("nextPage");
        if (curpage == null||Integer.valueOf(curpage ) < 0) {
            nextPage = 0;
        } else {
            nextPage = Integer.valueOf(request.getParameter("nextPage"));
        }
        JDBCbean jdbcbean = new JDBCbean();
        ResultSet rs = jdbcbean.executQuery("select * from bookinfo limit " + nextPage + ","+pageSize+"");
    %>
    <table border="1" align="center" cellpadding="10">
        <tr>
            <th>书名</th>
            <th>作者</th>
            <th>价格</th>
        </tr>
        <%
            while (rs.next()) {
                out.print("<tr>");
                out.print("<td>" + rs.getString(1) + "</td>");
                out.print("<td>" + rs.getString(2) + "</td>");
                out.print("<td>" + rs.getString(3) + "</td>");
                out.print("</tr>");
            }
        %>
        <%
            jdbcbean.close();
        %>

    </table>
    <div align="center">
         总页数:<%=jdbcbean.getTotalPage()/pageSize %>

         &nbsp当前页数:<%=nextPage % (jdbcbean.getTotalPage()/pageSize)+1%>
         <a href="index.jsp?nextPage=0">首页</a>
         <a href="index.jsp?nextPage=<%=nextPage - 5%>">上一页</a> 
         <a href="index.jsp?nextPage=<%=nextPage + 5%>">下一页</a>
         <a href="index.jsp">尾页</a>
    </div>
</body>
</html>

下面说一下几个要获取的值:
总页数=总页数就是总的数据条数 ÷ 每页显示的条数
但是要注意,如果总数据数除不尽,还需要进行一个判断。

if(totalRows%pageSize==0){
     totalPage=totalRows/pageSzie;
}
else{
      totalPage=totalRows/pageSzie+1;
}

下一页就是改变limit的两个参数值,前面的从第几条记录开始要加上每页显示的记录总数。这里也要进行判断,如果到末页了,需要提示。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值