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

自己参考别人并动手写的一个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" οnchange="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这块封装代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值