jsp学习-分页功能的实现

<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ page language="java" import="java.sql.*"%>


<script LANGUAGE="javascript">
<!-- 跳页函数 -->
    function test() {
        //这里还需要实现一些对于输入页码的安全性验证。比如不能为空,必须是数字这些。
        var page = document.getElementById("goPage").value;
        window.location.href = "Tem2.jsp?page=" + page;

    }
</script>
<%
    //变量声明 
    java.sql.Connection sqlCon; //数据库连接对象 
    java.sql.Statement sqlStmt; //SQL语句对象 
    java.sql.ResultSet sqlRst; //结果集对象 
    java.lang.String strCon; //数据库连接字符串 
    java.lang.String strSQL; //SQL语句 
    int intPageSize; //一页显示的记录数 
    int intRowCount; //记录总数 
    int intPageCount; //总页数 
    int intPage; //待显示页码 
    java.lang.String strPage;
    int i;
    //设置一页显示的记录数 
    intPageSize = 2;
    //取得待显示页码 
    strPage = request.getParameter("page");
    if (strPage == null) {//表明在QueryString中没有page这一个参数,此时显示第一页数据 
        intPage = 1;
    } else {//将字符串转换成整型 
        intPage = java.lang.Integer.parseInt(strPage);
        if (intPage < 1)
            intPage = 1;
    }
    //装载JDBC驱动程序 
    Class.forName("oracle.jdbc.driver.OracleDriver");
    sqlCon = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "system", "lyjie5220");
    //创建一个可以滚动的只读的SQL语句对象 
    sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
            java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句 
    strSQL = "select * from USERCHART";
    //执行SQL语句并获取结果集 
    sqlRst = sqlStmt.executeQuery(strSQL);
    //获取记录总数 
    sqlRst.last();//??光标在最后一行 
    intRowCount = sqlRst.getRow();//获得当前行号 
    //记算总页数 
    intPageCount = (intRowCount + intPageSize - 1) / intPageSize;
    //调整待显示的页码 
    if (intPage > intPageCount)
        intPage = intPageCount;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>分頁</title>
</head>
<body>
    
    <table border="1" cellspacing="0" cellpadding="0">

        <%
            if (intPageCount > 0) {
                //将记录指针定位到待显示页的第一条记录上 
                sqlRst.absolute((intPage - 1) * intPageSize + 1);
                //显示数据 
                i = 0;
                String user_id, user_name;
                while (i < intPageSize && !sqlRst.isAfterLast()) {
                    user_id = sqlRst.getString(1);
                    user_name = sqlRst.getString(2);
        %>
        <tr>
            <td><%=user_id%></td>
            <td><%=user_name%></td>

        </tr>
        <%
            sqlRst.next();
                    i++;
                }
            }
        %>
    </table>

<form method="POST" action=""><%=intPage%>页 共<%=intPageCount%><%
        if (intPage < intPageCount) {
    %>
        <a href="Tem2.jsp?Page=1">首页</a> <a
            href="Tem2.jsp?page=<%=intPage + 1%>">下一页</a>
        <%
            }
        %>
        <%
            if (intPage > 1) {
        %>
        <a href="Tem2.jsp?page=<%=intPage - 1%>">上一页</a> <a
            href="Tem2.jsp?Page=<%=intPageCount%>">尾页</a>
        <%
            }
        %>
        转到第:<input id="goPage" type="text" size="8"> 页 <a href="#"
            onClick="test()">跳转</a>

    </form>
    <%
        String cpage = request.getParameter("cpage");
        out.append(cpage);
        //response.sendRedirect("Tem2.jsp?page=intPage + 1");
    %>
    
</body>
</html>
<%
    //关闭结果集 
    sqlRst.close();
    //关闭SQL语句对象 
    sqlStmt.close();
    //关闭数据库 
    sqlCon.close();
%>

 

posted @ 2015-10-21 22:29  JarvisLau  阅读(710)  评论(0编辑  收藏  举报