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();
%>
时间: 2024-10-10 06:34:22

jsp学习-分页功能的实现的相关文章

JSP实现分页功能

分页须知知识点: (1)JDBC2.0的可滚动结果集. (2)HTTP GET请求. 一.可滚动结果集 Connection con  = DriverManager.getConnection(); PreparedStatement stmt = con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); ResultSet rs = stmt.executeQuery(); 经常用法:

分页功能的实现——Jdbc &amp;&amp; JSP

@目录 什么是分页 ? 两个子模块功能的问题分析 和 解决方案 有条件查和无条件查询的影响 和 解决方案 项目案例: mysql + commons-dbutils+itcast-tools+BaseServlet + 分页+JSP+JSTL+EL+MVC模式 什么是分页? 如上所示,就是分页  ,不用多说了 子模块功能的问题分析 和 解决方案 @总功能分析  常规JDBC中,点击查询或输入条件查询,在页面中可显示查询出的所有记录,有多少记录就显示多少.在这种项目的基础上增加分页功能 . @分页

jsp、js分页功能的简单总结

一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分页技术,有选择的加载某部分数据,在数据量较大的时候,分部分加载数据.显示数据,可以有效提高程序的性能,当然,单纯的js的分页技术并没有这种效果. 所以,分页技术是web技术中比较常用的技术,而下面讨论的主要是两种分页技术:一种是jsp的分页技术,其读取数据分批次读取,操作页数跳转的时候才加载相应页面

MVC5 Entity Framework学习之添加排序、筛选和分页功能

前一篇文章中实现了对Student 实体的的基本CRUD操作,在这篇文章中将演示如何为Students Index页面添加排序.筛选和分页的功能. 下面是当完成排序.筛选和分页功能后的截图,你可以点击列标题来进行排序. 1.为 Students Index页面添加列排序链接 要为Students Index页面添加排序功能,你需要修改Student controller的Index方法,并为Student Index视图添加代码. 向Index方法添加排序功能 打开Controllers\Stu

JDBC使用数据库来完成分页功能

本篇讲诉如何在页面中通过操作数据库来完成数据显示的分页功能.当一个操作数据库进行查询的语句返回的结果集内容如果过多,那么内存极有可能溢出,所以在大数据的情况下分页是必须的.当然分页能通过很多种方式来实现,而这里我们采用的是操作数据库的方式,而且在这种方式中,最重要的是带限制条件的查询SQL语句: select name from user limit m,n 其中m与n为数字.n代表需要获取多少行的数据项,而m代表从哪开始(以0为起始),例如我们想从user表中先获取前五行数据项(1-5)的na

第83节:Java中的学生管理系统分页功能

分页功能一般可以做成两种,一种是物理分页,另一种是逻辑分页.这两种功能是有各自的特点的,物理分页是查询的时候,对数据库进行访问,只是查一页数据就进行返回,其特点是对内存中数据量存储不大,只是缺点就是要对数据库不断的进行访问:而对逻辑分页来说,就有所不同,它是一下子就把所有的数据全部查询出来,然后放入到内存中,访问速度快,缺点就是对内存空间不足,数据量过大. select * from stu limit 5; // offset 偏移前面的多少条,offset 1 跳过前面的一条 select

servlet和jsp学习指南(一)servlet

近期接触了些纯servlet与jsp的编程项目,顺便把<servlet和jsp学习指南>这本书拿出来看看,感悟良多.记下随笔,以便会议. 要编写一个servlet首先要实现Servlet或者继承HttpServlet package test.com.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet

网页分页功能的实现

最近在学习JavaWeb的时候,用到了分页功能,现在进行一个记录,以备不时之需 第一步:先完成分页Bean的编写. 就是对当前页数,每页显示的记录数,总记录数,总页数,分页显示的信息进行封装.作为通用的分页功能的实现,这里用到了泛型 import java.util.List; /** * 分页封装 * */ public class PageBean<T> { private int currPage;//当前页数 private int pageSize;//每页显示记录数 private

Servlet&amp;Jsp学习笔记归纳图(一)

转载请注明出处!!!版权必究!! 以下是Servlet&Jsp的学笔记归纳图,详细内容以及相关代码会在后面整理完成 后给出 使用的是思维导图工具:MindManager 6 最新版本是2013,有兴趣的自己百度下载,功能更多,安装有点麻烦 以下提供版本6绿色版免安装版下载: http://pan.baidu.com/s/1jGqlnXc 本节思维导图文件下载:http://pan.baidu.com/s/1eQGbMSU Servlet&Jsp学习笔记归纳图(一),布布扣,bubuko.c