很好的jsp+servlet+javaBean实现数据分页代码例子

转载 2015年11月19日 14:52:02

自己参考别人并动手写的一个jsp+servlet+javaBean实现数据分页代码例子,省去了数据库连接部分,给出核心代码。

1.首先创建实现分页功能的javabean

public class PageBean {

    private int curPage = 1; //当前是第几页
    private int maxPage; //一共有多少页
    private int maxRowCount; //一共有多少行
    public int rowsPerPage = 5; //每页多少行

    Connection conn;
    public ArrayList data;

    public PageBean() throws Exception {
        this.setPageBean();
    }
    public int getCurPage() {
        return curPage;
    }
    public int getMaxPage() {
        return maxPage;
    }
    public int getMaxRowCount() {
        return maxRowCount;
    }
    public int getRowsPerPage() {
        return rowsPerPage;
    }
    public void setCurPage(int curPage) {
        this.curPage = curPage;
    }
    public void setMaxPage(int maxPage) {
        this.maxPage = maxPage;
    }
    public void setMaxRowCount(int maxRowCount) {
        this.maxRowCount = maxRowCount;
    }
    public void setRowsPerPage(int rowsPerPage) {
        this.rowsPerPage = rowsPerPage;
    }
    //得到要显示于本页的数据
    public PageBean getResult(String page) throws Exception {
        try {
            PageBean pageBean = new PageBean();
            ArrayList list = new ArrayList();
            System.out.println("page=="+page);
            int pageNum = Integer.parseInt(page);
            System.out.println("pageNum=="+pageNum);
            conn=DBUtil.getConnetion(); 
            Statement stmt = conn.createStatement();
            String strSql = "select * from receivemail limit "+pageNum * pageBean.rowsPerPage;//改成你的表
            System.out.println("pageNum * pageBean.rowsPerPage=="+pageNum * pageBean.rowsPerPage);
            ResultSet rset = stmt.executeQuery(strSql);
            boolean flag = rset.absolute((curPage-1)*pageBean.rowsPerPage+1); //把结果集指针调整到当前页应该显示的记录的开始.
            int i = 0;
            while (rset.next()) {
                    //这里要和表的字段对应起来!!!!
                    ReceiveMail mail=new ReceiveMail();
                    mail.setReceiveid(rset.getInt("receivid"));
                    mail.setRecontent(rset.getString("scontent"));
                    mail.setUid(rset.getInt("uid"));
                    mail.setState(rset.getInt("state"));
                    mail.setStime(rset.getString("stime"));
                    mail.setSubject(rset.getString("subject"));
                    mail.setRecontent(rset.getString("recontent"));
                    mail.setRetime(rset.getString("retime"));
                    list.add(mail);
                i++;
            }
            System.out.println("i=="+i);
            DBUtil.CloseAll();
            pageBean.setCurPage(pageNum);
            pageBean.data = list;
            return pageBean;
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("PageBean显示本页数据逻辑erro");
            throw e;

        }
    }
    //获取总行数
    public int getAvailableCount() throws Exception {
        int ret = 0;
        conn=DBUtil.getConnetion();
        Statement stmt = conn.createStatement();
        String strSql = "select * from receivemail";//改成你的表
        ResultSet rset = stmt.executeQuery(strSql);
        while (rset.next()) {
            ret++;
        }
        return ret;
    }
    //初始化时对PageBean进行设置
    public void setPageBean() throws Exception {
        //得到总行数
        this.setMaxRowCount(this.getAvailableCount());
        if (this.maxRowCount % this.rowsPerPage == 0) { //根据总行数计算总页数
            this.maxPage = this.maxRowCount / this.rowsPerPage;
        } else {
            this.maxPage = this.maxRowCount / this.rowsPerPage + 1;
        }
    }

}
2.然后创建处理跳转的servlet

public class PageServlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        //try (PrintWriter out = response.getWriter()) {
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //processRequest(request, response);
       
        
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
        
         try
      {
            PageBean page1=new PageBean();
            PageBean page2=page1.getResult(String.valueOf(request.getParameter("jumpPage").trim()));
              //把PageBean保存到request对象中。注意:viewpage.jsp里jsp:useBean id必须为"page2"才可以!!!
              request.setAttribute("page2",page2);
      }
      catch(Exception e)
      {
              System.out.println("servlet erro");
      }

          /**
       *把视图派发到<span style="font-family: Arial, Helvetica, sans-serif;">newMail.jsp</span>
       */
      javax.servlet.RequestDispatcher dis=request.getRequestDispatcher("newMail.jsp");
      dis.forward(request,response);
        
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
3.最后创建展示页面

   <body>
        <div>
            <table id="t" border="1">
                <tr>
                    <th class="t1_1">邮件编号</th>
                    <th class="t1">发件人</th>
                    <th class="t1">主题</th>
                    <th class="t1">内容</th>
                    <th class="t1">发送时间</th>
                    <th class="t1_2">状态</th>
                    <th class="t1_2">回复内容</th>
                    <th class="t1_2">回复时间</th>
                    <th>操作</th>
                </tr>  
             
        <script type="text/javascript">  
            function Jumping(){
                   document.PageForm.submit();
                   return ;
                }

            function gotoPage(pagenum){
                document.PageForm.jumpPage.value = pagenum;
                document.PageForm.submit();
                return ;
              }
        </script>
            
       <%
            String s=String.valueOf(page2.getCurPage());
            System.out.println("s=="+s);
            try{
                    ArrayList list=page2.getResult(s).data;
                    System.out.println("list.size="+list.size());
                    for(int i=0;i<list.size();i++){
                    ReceiveMail mail=(ReceiveMail)list.get(i);
        %>
      
        <tr>
             <td class="t2" ><%=mail.getReceiveid()%></td>
             <td class="t2"><%=mail.getUid()%></td>
             <td class="t2"><%=mail.getSubject()%></td>
             <td class="t2"><%=mail.getScontent() %></td>
             <td class="t2"><%=mail.getState() %></td>
             <td class="t2_2"><%=mail.getStime() %></td>
             <td class="t2_2"><%=mail.getRecontent() %></td>
             <td class="t2_2"><%=mail.getRetime() %></td>
             <td class="t2"><a href="javascript:openwindow('Detail_prize.jsp?id=',<%=mail.getReceiveid()%>,'<%=mail.getUid()%>')">回复</a></td>
        </tr>
        <%
                    } }catch(Exception e){
                        System.out.println("显示出错");
                    }
        %>
            </table>
            <%if(page2.getMaxPage()!=1){ %>
            <form name="PageForm" action="PageServlet" method="post">
                每页<%=page2.rowsPerPage%>行
                共<%=page2.getMaxRowCount()%>行
                第<%=page2.getCurPage()%>页
                共<%=page2.getMaxPage()%>页<BR>
                <%
                    if (page2.getCurPage() == 1) {
                    out.print(" 首页 上一页");
                    }else {
                %>
                <a HREF="javascript:gotoPage(1)">首页</A>
                <a HREF="javascript:gotoPage(<%=page2.getCurPage()-1%>)">上一页</A>
                <%}%>
        <%
            if (page2.getCurPage() == page2.getMaxPage()) {
            out.print("下一页 尾页");
        }else {
        %>
        <a HREF="javascript:gotoPage(<%=page2.getCurPage()+1%>)">下一页</A>
        <a HREF="javascript:gotoPage(<%=page2.getMaxPage()%>)">尾页</A>
        <%}%>
        转到第<SELECT name="jumpPage" onchange="Jumping()">
        <%
            for (int i = 1; i <= page2.getMaxPage(); i++) {
            if (i == page2.getCurPage()) {
        %>
        <OPTION selected value="<%=i%>"><%=i%> </OPTION>
        <%} else {%>
            <OPTION value="<%=i%>"><%=i%> </OPTION>
        <%}
        }%>
        </SELECT>
            页
            </form>
           <%}%>
            </div>            
    </body>

省略了EmaiBean这块封装代码。

相关文章推荐

JSP+JavaBean+Servlet实现分页

 今天给同学用JSP+JavaBean+Servlet做了个分页。用的是MySQL+Tomcat+MyEclispe环境。分页计数器如下:package org.pagedemo.page;/** *...
  • qpyong
  • qpyong
  • 2008年09月15日 18:39
  • 6143

java+jsp+servlet实现分页

web.xml配置: abc test.pageServlet abc /inse

jsp页面完美的分页代码,每次显示十条分页链接。

jsp页面的分页,功能全面(有上一页,下一页,首页,尾页,跳到第几页,共几页,当前第几页;还有分页的链接,每次显示十条链接,已当前页为中心左边显示5个链接,右边显示4个链接,不管页数再多总是显示十个链...

【菜鸟学Java】3:封装一个分页类PageBean

背景介绍:         在做网上商城的项目时,有一个非常高频的功能需求,那就是做Web前端开发都知道的分页显示数据。当然要实现这个功能方法是非常多的,在我之前的做的项目接口管理系统中,使用的实现...

MySQL数据库+jsp+servlet实现分页查询

前一段做的那个jsp+servlet的小项目用到了分页查询,老师讲了之后实现到了网页上面,今天总结到博客上面,以后忘记了自己可以看,也分享给大家.    这个项目使用的数据库是MySQL,在MySQL...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

使用JSP+JavaBean进行分页

之前一直对分页功能很排斥,因为觉得实现很简单,所以自己也没有写过分页功能。 前天面试的时候被问到了这个问题,一脸懵逼。今天好好整理了一下,做了一个比较简单而且粗糙的分页。原理:利用mysql语句的l...

在javaBean中实现对Oracle的分页方法

    //分页结果集  条件tj  排序 px   当前页 page  每页记录数pagesize    public ResultSet getPageRs(String tabname,Stri...
  • arielxp
  • arielxp
  • 2006年08月26日 18:36
  • 1602

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JSP+Servlet+JavaBean实现分页

自己从网上看了很多分页的例子,有些写的不是很明白,这两天做项目的时候用到了分页,特地把它写下来,供以后学习。。。 项目:个人简历 在简历列表(list.jsp)中用到了分页,因为经过增删改...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:很好的jsp+servlet+javaBean实现数据分页代码例子
举报原因:
原因补充:

(最多只允许输入30个字)