servlet分页

步骤:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单从表现层来说分页不是一个复杂的工作,稍微理一下思路,处于不同competence level的同学应该都能自己搞出来。 以上面的文章列表分页为例,我觉得分页有两点重要的, 一是:分页我们必须首先自己搞清楚,文章总数、每页显示文章数(页大小)、页数 二是:如何做好页脚的分页导航条 实际应用中,文章总数这个值我们从数据库可以得到;每页显示的文章数即分页的页大小可以自己定义;页数我们可以通过下面的个表达式简单得出。 假设: int pageSize = 10; //分页大小 int totalPosts = PagingDAO.entryList.size(); //总文章数 int totalPages = totalPosts/pageSize + ((totalPosts%pageSize)>0?1:0); //计算得出的总页数 每页的文章怎么取出来? 知道分页的大小之后,我们生成了页好的选取下拉框,每次选择第几页的时候,都会向Servlet传递当前选择页号的参数,这样Servlet调用后面的DAO相应的方法,取得文章列表信息,再回传到JSP以供显示。 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> page Size : ${pageSize} <br /> Total Posts: ${totalPosts} <br /> Total Pages: ${totalPages} <br /> Current Page: ${pageNumber} <hr /> <table> <thead> <tr align="center"> <td width="10%">Article ID</td> <td width="70%">Article Title</td> <td colspan="3">Actions</td> </tr> </thead> <tbody> <c:forEach items="${entryList}" var="entry"> <tr align="center"> <td>${entry.entryID}</td> <td>${entry.title}</td> <td><a href="viewEntry?entryID=${entry.entryID}">View</a></td> <td><a href="editEntry?entryID=${entry.entryID}">Edit</a></td> <td><a href="deleteEntry?entryID=${entry.entryID}">Delete</a></td> </tr> </c:forEach> </tbody> <tfoot> <tr align="center"> <td colspan="5"> <jsp:include page="paging_footer.jsp"></jsp:include> </td> </tr> </tfoot> </table> <hr/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值