`

分页显示问题

阅读更多

步骤:
1.        创建SepPage类,并设置有关的方法。
2.        在进行页面的转移时传递并当前的页面并传递参数。
3.        进行分页处理。
a.        计算总记录数
b.        怎么样进行分页
c.        首页显示处理
d.        传递有关参数
e.        获取有关传递的页面的参数

实例:以查询所有的用户信息为例子进行说明

package bean;
/**********************分页类描述************************/
public class SepPage
{
        private int allRows; // 一共有多少行记录
        private int curPage = 1; // 当前页面
        private int rowPerPage = 8; // 一页显示多少行
        private int allPages; // 一共有多少页
        public int getAllRows()
        {
                return allRows;
        }
        public void setAllRows(int allRows)
        {
                this.allRows = allRows;
        }
        public int getCurPage()
        {
                return curPage;
        }
        public void setCurPage(int curPage)
        {
                this.curPage = curPage;
        }
        public int getRowPerPage()
        {
                return rowPerPage;
        }
        public void setRowPerPage(int rowPerPage)
        {
                this.rowPerPage = rowPerPage;
        }
        public int getAllPages()
        {
                return allPages;
        }
        public void setAllPages(int allPages)
        {
                this.allPages = allPages;
        }
}


2.数据接收servlet
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.DBOperationBean;
import java.util.*;
import util.Convert;
import java.sql.*;
import bean.*;
/**
* servlet类,获取有关客户的信息并进行相关的处理
* @author qihuasun
*/
public class CustomerServlet extends HttpServlet
{
        //查询所有sql语句
        public static final String SELECTBYALL="select * from SCOTT.EXRM_T_CUSTOMER order by CUM_FULLNAME ";
        public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
        {
                 this.doPost(request, response);
         }
        public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
        {
                //处理有关中文乱码问题
                request.setCharacterEncoding("GBK");
                response.setContentType("text/html;charset=GBK");
                response.setCharacterEncoding("GBK");
        String status=request.getParameter("status").trim();//获取页面传递的标志位status
        String path="error.jsp";
         if(!status.equals("")|| status!=null)
         {
              
                  if(status.equals("findall"))
                 {
                          DBOperationBean db=new DBOperationBean();
                         String page=request.getParameter("curpage");
                          try
                        {   
                                  int curPage = Integer.parseInt(request.getParameter("curPage"));
//获取页面传递的参数
                            SepPage pa=new SepPage();
                                pa.setCurPage(curPage);
                                ArrayList al=db.query(this.SELECTBYALL,pa);
                                   if(al!=null)
                                    {
                                       // path="main.jsp";
                                         path="TestMain2.jsp";
                                         request.setAttribute("all",al);
                                    }
                                   else
                                   {
                                           path="error.jsp";
                                   }
                              
                            }
                            catch(Exception ex)
                            {
                                    ex.printStackTrace();
                            }       
                 }
                 
         }
         request.getRequestDispatcher(path).forward(request,response);
        
        }

}

4.        数据访问类
package bean;
import java.sql.*;

import javax.sql.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.naming.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import java.util.*;
import bean.SepPage;
/**
* bean类,获取有关配置文件的信息的页面的信息,并进行有关的处理
* @author qihuasun
*/
public class DBOperationBean
{
         //驱动
   private final String DBDRIVER        = "oracle.jdbc.driver.OracleDriver";
   // 数据库连接地址
   private final String DBURL                = "jdbc:oracle:thin:@127.0.0.1:1521:data";
        // 数据库用户名
   private final String DBUSER                = "SCOTT";
        // 数据库连接密码
   private final String DBPASSWORD        = "sqh";
        // 声明一个数据库连接对象
   private Connection conn                            = null ;
   private PreparedStatement  pstm=null;
   private ResultSet rs=null;
   public DBOperationBean()
   {
           this.init();
   }
        private void init()  //从数据库连接属性XML配置文件中获取关于连接的信息
        {         
                conn=new DBConnection().getConnection();
        }
        private Connection getConnection() //取得数据库连接并设置为当前连接
        {   
                 try
                 {
                          Class.forName(DBDRIVER);
                         
                          conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);// 连接数据库
                          System.out.println("connected");
                 }
                 catch(Exception ex)
                 {
                         ex.printStackTrace();
                 }
                  
               
            return this.conn;
        }                    
       
        public ArrayList query(String sql,SepPage page) throws Exception
        {//执行查询,返回结果集
                ArrayList al=new ArrayList();
                try
                {
                    Connection conn=this.getConnection();
                    pstm = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
                                        ResultSet.CONCUR_READ_ONLY);
                    rs=pstm.executeQuery();
                    rs.last(); // 移动到最后一行
                        page.setAllRows(rs.getRow()); // 设置一共有多少行记录
                        // 算出有多少页
                        if (page.getAllRows() % page.getRowPerPage()== 0)
                        {
                                page.setAllPages(page.getAllRows() / page.getRowPerPage());
                        }
                        else
                        {
                                page.setAllPages(page.getAllRows() / page.getRowPerPage() + 1);
                        }
                        //判定是否是第一页
                        if (page.getCurPage() == 1) //当前页
                        {
                                // 将指针移动到此ResultSet对象的开头,正好位于第一行之前
                                rs.beforeFirst();
                        }
                        else
                        {
                                // 将指针移动到此ResultSet对象的给定行编号
                                rs.absolute((page.getCurPage() - 1) * page.getRowPerPage());
                        }
                        int i = 0;
                    while(rs.next() && i < page.getRowPerPage())
                    {
                             Customer cu=new Customer();
                             cu.setId(rs.getInt("CUM_ID"));
                             cu.setName(rs.getString("CUM_FULLNAME"));
                             cu.setAddress(rs.getString("CUM_MAINADDRESS"));
                             cu.setPhone(rs.getString("CUM_PHONE"));
                             al.add(cu);
                             i++;
                    }
                }
                catch(Exception ex)
                {
                         ex.printStackTrace();   
                }
                finally
                {
                           try
                           {
                                   if(conn!=null)
                                   {
                                           this.conn.close();
                                   }
                           }
                           catch(Exception ex)
                           {
                                   ex.printStackTrace();   
                           }                  
                }
                return al;
        }
}

4、页面显示
  <%@ page language="java" contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*,bean.SepPage"%>
<%@page import="bean.Customer;"%>

<%
        ArrayList all = (ArrayList) request.getAttribute("all");
        SepPage seppage = (SepPage) request.getAttribute("pagebean");
//获取设置的SepPage参数
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
        <head>
                <title>客户管理</title>
                <link href="css/style.css" rel="stylesheet" />
        </head>
        <body>
                <div class="top" >
                        『 作者管理 』
                </div>
                <div class="center">
                        <form action="AuthorServlet?status=selectbylike&curPage=1" method="post" style="margin: 0;">
                                <table class="fine" cellpadding="0" cellspacing="0">
                                        <tr>
                                                <td colspan="3" style="height: 40px;">

                                                </td>
                                        </tr>       
                                        <tr>
                                           <td>
                                                          序号
                                                </td>
                                                <td>
                                                        客户名称
                                                </td>
                                                <td>
                                                        联系电话
                                                </td>
                                                        <td>
                                                        地址
                                                </td>
                                                &nbsp;&nbsp;&nbsp;&nbsp;<td>
                                                        操作
                                                </td>
                                        </tr>
                                        <%
                                            int i=0;
                                                if (all != null && all.size() != 0)
                                                 {
                                                        for (int j=0;j<all.size();j++)
                                                        {  
                                                            i++;
                                                            Customer cus=(Customer)all.get(j);
                                                                int authorId1=cus.getId();
                                                                String str="找不到记录!!!";
                                                                if(i==0)
                                                                {
                                                                    
                                                                  
                                                                   out.println("<scrtipt>alert('找不到记录')<script>");
                                                                }
                                                                else
                                                                {%>
                                                                  
                                                <tr>                  
                                            <td>

                                                        <%=i%>
                                                </td>
                                                <td>

                                                        <%=cus.getName()%>
                                                </td>
                                                <td>
                                                        <%=cus.getPhone()%>
                                                </td>
                                                        <td>
                                                        <%=cus.getAddress()%>
                                                </td>
                                                <td>
                         <td><a href="CustomerServlet?status=selectbyid&id=<%=cus.getId()%>">更新</a>&nbsp;&nbsp;&nbsp;&nbsp;</td>&nbsp;&nbsp;
                                               
                        <td><a href="CustomerServlet?status=delete&id=<%=cus.getId()%>" onclick="if(confirm('是否删除业务信息?')){return   true;}else{return   false;}">删除</a>&nbsp;&nbsp;&nbsp;&nbsp;</td>
                        <td><a href="addCus.jsp">添加</a></td>
                                        </tr>
                                                               
                                                           <%}%>
                                       
                                        <%
                                                }//end for循环
                                        }//end if all != null
                                        %>
                                        <%
                                                if (seppage != null) {
                                        %>
                                        <tr>
                                                <td colspan="3"
                                                        style="height: 32px; text-align: right; font-weight: bold; padding-right: 10px;">
                                                        <font color="#FF5BAD">一共有&nbsp;<font color="red"><%=seppage.getAllPages()%></font>&nbsp;页&nbsp;&nbsp;当前在第&nbsp;<font
                                                                color="red"><%=seppage.getCurPage()%></font>&nbsp;页&nbsp;&nbsp;&nbsp;&nbsp;</font>
                                                        <%
                                                                if (seppage.getCurPage() != 1) //不是第一页,则首页,上一页可用
                                                                {
                                                        %>
                                                        <a href="CustomerServlet?status=selectbyall&curPage=1">首 页</a>&nbsp;&nbsp;
                                                        <a
                                                                href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getCurPage()-1 %>">上一页</a>
                                                        <%
                                                                }
                                                        %>
                                                        &nbsp;&nbsp;
                                                        <%
                                                                if (seppage.getCurPage() != seppage.getAllPages())//不是最后一页,则有下一页和末页
                                                                 {
                                                        %>
                                                        <a
                                                                href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getCurPage()+1 %>">下一页</a>&nbsp;&nbsp;
                                                        <a
                                                                href="CustomerServlet?status=selectbyall&curPage=<%=seppage.getAllPages() %>">末
                                                                页</a>
                                                        <%
                                                                }
                                                        %>

                                                </td>
                                        </tr>
                                        <%
                                                }
                                        %>
                                        </table>
                                        </form>
<form action="CustomerServlet?status=selectbylike&curPage=1" method="post" style="margin: 0;">
                                <table class="fine" cellpadding="0" cellspacing="0">
                                        <tr>
                                                <td colspan="3" style="height: 40px;">
                                                        <select style="height: 20px" name="sel">
                                                                <option selected value="由客户姓名">
                                                                        由客户姓名
                                                                </option>
                                                                <option value="由地址">
                                                                        由地址
                                                                </option>
                                                        </select>
                                                        &nbsp;&nbsp;
                                                        <input  type="text" name="in" style="width: 200px" /><input  type="submit" value="查 找" />       
                                                </td>
                                        </tr>       
                                        </table>
                                        </form>
    </div>
        </body>

分享到:
评论

相关推荐

    jquery 文章分页jQuery分页的解决图片和内容分页显示

    本篇文章将深入探讨如何使用jQuery来解决文章内容以及图片的分页显示问题。 首先,我们需要了解分页的基本原理。分页通常涉及两个主要步骤:数据切片和界面渲染。数据切片是指将原始的长篇文章或包含图片的数据分割...

    asp超简单分页显示

    在ASP中实现分页显示是常见的需求,特别是在处理大量数据时,为了提高用户体验,我们需要将数据分批次加载,这就是所谓的分页技术。下面将详细解释如何在ASP中实现超简单的分页显示。 一、理解分页原理 分页的基本...

    Qt数据库分页显示

    本教程将深入探讨如何在Qt应用中实现SQLite数据库的数据分页显示。 首先,我们需要在Qt项目中集成SQLite数据库支持。在Qt Creator中,新建一个Qt Widgets Application项目,然后在.pro文件中添加`QT += sql`来启用...

    C#DataGridView分页显示功能实现

    当数据量较大时,一次性加载所有数据可能导致性能问题,因此需要实现分页显示功能。本篇文章将详细讲解如何在C# WinForm应用中实现`DataGridView`的分页功能。 首先,我们需要了解`DataGridView`的基本用法。`...

    javaweb_分页显示数据库内容

    Java Web 分页显示数据库内容 Java Web 分页显示数据库内容是指在 Java Web 应用程序中实现在数据库内容的分页显示。分页是指将大量的数据或记录分割成多个页面,以便于用户逐页浏览和查看。分页在数据库查询和显示...

    分页显示模块

    分页显示模块知识点总结 分页显示模块是指在 Web 应用程序中,用于分页显示大量数据的模块。该模块的主要功能是将大量数据分页显示,使用户可以更方便地浏览和下载相关信息资源。 1. 分页显示模块的主要组成部分 ...

    分页显示数据技术

    在IT行业中,分页显示数据是一项非常常见的技术,特别是在网页应用和大数据展示中。它能够有效地管理和呈现大量的信息,提高用户界面的响应速度,减轻服务器的负担,同时提供更好的用户体验。下面将详细介绍分页显示...

    ireport控制分页显示

    在探讨“ireport控制分页显示”的主题时,我们深入解析如何在iReport设计工具中实现每页固定记录条数的分页显示功能。iReport是JasperReports的一部分,一个强大的开源报表工具,广泛用于Java应用程序中生成各种复杂...

    文件分页显示程序+报告

    在IT行业中,分页显示是一种常见的用户界面设计技术,它用于处理大量的数据或文本内容,以便用户能够有效地浏览和管理。在这个汇编课程设计中,我们聚焦于一个名为"文件分页显示程序"的实现,这涉及到对大量文本或...

    DW专业版本分页显示.

    在IT行业中,分页显示是一项常见的技术,尤其在数据量庞大的网页或应用中,它能够有效地提高用户体验,避免一次性加载过多的数据导致页面响应慢或内存消耗过大。标题和描述中的"DW专业版本分页显示"可能指的是...

    java web分页显示

    在Java Web开发中,分页显示是一项非常重要的功能,它能有效地管理大量数据,提高用户体验,避免一次性加载过多数据导致的性能问题。本教程将详细讲解如何在SQL Server 2005数据库环境下,利用JDBC进行分页查询,以...

    易语言ACCESS数据库分页显示

    本话题主要关注的是使用易语言(Easy Language)实现ACCESS数据库的分页显示功能。易语言是中国本土开发的一款编程语言,以其直观、简单的语法设计,使得初学者也能快速上手编程。 首先,我们要理解什么是分页显示...

    DAO模式与分页显示

    分页显示是大型Web应用中常见的一种技术,用于处理大量数据的展示问题。当数据集过大时,一次性加载所有数据会消耗大量的系统资源,并可能导致用户界面反应迟钝。分页查询能够按需加载数据,只显示当前页面所需的...

    JSP连接SQL数据库实现数据分页显示

    ### JSP连接SQL数据库实现数据分页显示 #### 概述 本文档通过一个实际案例展示了如何使用JSP(Java Server Pages)与SQL数据库进行交互,并实现数据的分页显示功能。该示例包含了详细的代码及注释,有助于理解整个...

    分页显示数据列表

    在IT行业中,分页显示数据列表是一个常见的需求,特别是在网页应用和数据库管理中。这个功能使得用户能够有效地浏览大量信息,而不会一次性加载过多数据导致性能下降或用户体验不佳。以下是对给定标题和描述中涉及...

    vc6.0 实现分页显示的源文件

    本资源提供的"vc6.0 实现分页显示的源文件"正是为了解决这个问题,它利用TabControl控件来实现分页效果。下面将详细阐述分页显示的原理、实现方法以及TabControl控件的相关知识。 1. 分页显示原理: 分页显示的基本...

    VC大数据量的分页显示

    "VC大数据量的分页显示"是一个专门解决此类问题的解决方案,适用于各种需要展示大量数据库信息的场景。这个小程序通过分页技术有效地管理和展示数据,提高了用户体验,避免了因一次性加载过多数据导致的性能下降和...

    分页显示数据库记录

    在数据库管理中,分页显示是一项重要的功能,它允许用户以可管理的大小查看大量数据,而不是一次性加载所有记录。本话题将详细讲解如何通过编程实现分页显示数据库中的记录,特别是关注在ACCESS数据库环境下的实现...

    用PHP实现分页显示

    为了解决这个问题,我们通常会采用分页显示的方式,将大量数据分成若干页进行加载。本教程将详细介绍如何用PHP实现分页显示。 一、理解分页原理 分页的基本原理是通过限制每次从数据库中查询的数据数量,然后根据...

    java 数据分页显示

    在Java编程中,数据分页显示是Web应用中常见的需求,尤其在处理大量数据时,为了提高用户体验并优化服务器性能,通常需要将数据分成多个页面进行展示。本篇将深入探讨Java实现数据分页显示的核心技术和策略。 首先...

Global site tag (gtag.js) - Google Analytics