jsp+servlet+mysql分页问题 - 功能实现一

users.jsp页面如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page language="java" import="java.sql.*" %>
<%--
  Created by IntelliJ IDEA.
  User: socul
  Date: 2016/4/6
  Time: 23:42
  To change this template use File | Settings | File Templates.
--%>

<%-- 该页面直接在jsp页面操作数据库实现分页功能 --%>

<html>
<head>
    <title>用户信息表</title>
    <style type="text/css">

        table {
            width: 800px;
        }

        table.gridtable {
            font-family: verdana, arial, sans-serif;
            font-size: 11px;
            color: #333333;
            border-width: 1px;
            border-color: #666666;
            border-collapse: collapse;
        }

        table.gridtable th {
            border-width: 1px;
            padding: 8px;
            border-style: solid;
            border-color: #666666;
            background-color: #dedede;
        }

        table.gridtable td {
            border-width: 1px;
            padding: 8px;
            border-style: solid;
            border-color: #666666;
            background-color: #ffffff;
        }

    </style>
</head>
<body>
<div align="center"><h1>分页显示用户记录</h1></div>
<hr/>
<table width="800" border="1" align="center" class="gridtable">
    <tr>
        <td>id</td>
        <td>username</td>
        <td>password</td>
        <td>option</td>
    </tr>
    <%
        try {

            //加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //连接数据库
            Connection conn;
            conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "root");
            //创建执行语句
            Statement stmt;
       stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY)
            ResultSet rs = stmt.executeQuery("select * from users");
            int intPageSize;      //一页显示的记录数
            int intRowCount;      //记录的总数
            int intPageCount;     //总页数
            int intPage;          //待显示的页码
            String strPage;
            int i;
            //设置一页显示的记录数
            intPageSize = 10;
            //取得待显示的页码
            strPage = request.getParameter("page");
            //判断strPage是否等于null,如果是,显示第一页数据
            if (strPage == null) {
                intPage = 1;
            } else {
                //将字符串转换为整型
                intPage = java.lang.Integer.parseInt(strPage);
            }
            if (intPage < 1) {
                intPage = 1;
            }
            //获取记录总数
            rs.last();
            intRowCount = rs.getRow();
            //计算机总页数
            intPageCount = (intRowCount + intPageSize - 1) / intPageSize;
            //调整待显示的页码
            if (intPage > intPageCount) intPage = intPageCount;
            if (intPageCount > 0) {
                //将记录指针定位到待显示页的第一条记录上
                rs.absolute((intPage - 1) * intPageSize + 1);
            }
            //下面用于显示数据
            i = 0;
            while (i < intPageSize && !rs.isAfterLast()) {
    %>

    <tr>
        <td><%=rs.getInt("id")%>
        </td>
        <td><%=rs.getString("username")%>
        </td>
        <td><%=rs.getString("password")%>
        </td>
        <td><a onclick="isDel()" href="#">删除</a>
            &nbsp;&nbsp;<a href="#">修改</a>
        </td>
    </tr>

    <%
            rs.next();
            i++;
        }
        //关闭连接、释放资源
        rs.close();
        stmt.close();
        conn.close(); %>

    <div align="center">
        共<%=intRowCount%>个记录,分<%=intPageCount%>页显示,当前页是:第<%=intPage%>页
        <%
            for (int j = 1; j <= intPageCount; j++) {
                out.print("&nbsp;&nbsp;<a href='users.jsp?page=" + j + "'>" + j + "</a>");
            }
        %>
    </div>
    <br/>
    <%
        } catch (Exception e) {
            e.printStackTrace();
        }
    %>
</table>
</body>
</html>

  

  这个方法固然能实现分页功能,但是在jsp页面写过多Java语句且操作数据库,代码不免冗杂,接下来我会介绍另一种方法

你可能感兴趣的:(jsp+servlet+mysql分页问题 - 功能实现一)