JavaWeb中的簡單分頁,JavaWeb簡單分頁

來源:互聯網
上載者:User

JavaWeb中的簡單分頁,JavaWeb簡單分頁

這次主要是講解一下通過登入後對得到的資料進行分頁,首先我們建立一個登入頁面login.jsp,因為我們主要學習一下分頁,所以登入驗證的部分不再闡述,主要代碼如下:

1  <form action="pageServlet">2         使用者名稱:<input type="text" name="username"><br>3         密&nbsp;碼:<input type="text" name="password"><br>4         <input type="submit" value="提交">5     </form>

首先建立實體類User.java並添加get和set方法:

 1 public class User { 2     private String username; 3     private String password; 4     public String getUsername() { 5         return username; 6     } 7     public void setUsername(String username) { 8         this.username = username; 9     }10     public String getPassword() {11         return password;12     }13     public void setPassword(String password) {14         this.password = password;15     }16     17 }

我們可以看到form表單是提交到pageServlet中,所以我們建立一個PageServlet,並在Servlet中擷取到資料,同時做一些分頁的準備,具體含義可以參照注釋理解,PageServlet代碼:

 1 public class PageServlet extends HttpServlet { 2     public void doGet(HttpServletRequest request, HttpServletResponse response) 3             throws ServletException, IOException { 4         List<User> list = new ArrayList<User>(); 5         // 在這裡我不再串連資料庫而是用虛擬資料進行測試效果,小夥伴可以串連資料庫查詢到之後返回一個list 6         for (int i = 1; i < 7; i++) { 7             User user1 = new User(); 8             user1.setUsername("第" + i + "個使用者名稱"); 9             user1.setPassword("第" + i + "密碼");10             list.add(user1);11         }12         HttpSession session = request.getSession();13         // 將資料存到session中以便於在前台擷取14         session.setAttribute("userList", list);15         //擷取當前頁的頁數並轉為int類型,最終將資料存到session中16         int pageNos;17         if (request.getParameter("pageNos") == null18                 || Integer.parseInt(request.getParameter("pageNos")) < 1) {19             pageNos = 1;20         } else {21             pageNos = Integer.parseInt(request.getParameter("pageNos"));22         }23         session.setAttribute("pageNos", pageNos);24         // 定義總頁數並存到session中25         int countPage = 3;26         // 在實際開發中我們的總頁數可以根據sql語句得到查詢到的總條數,然後用總條數除每頁的條數得到總頁數27         session.setAttribute("countPage", countPage);28         request.getRequestDispatcher("index.jsp").forward(request, response);29     }30 31     public void doPost(HttpServletRequest request, HttpServletResponse response)32             throws ServletException, IOException {33 34     }35 36 }

在上述代碼中我們最終將轉寄到index.jsp頁面,此時我們所有的資料都將顯示在index.jsp中,用JSTL和EL運算式擷取得到,index.jsp主要代碼如下:

 1   <body> 2     <c:forEach items="${userList}" var="user" begin="${(pageNos-1)*2 }" 3         end="${pageNos*2-1}"> 4         <center> 5             <div>${user.username}</div> 6         </center> 7         <center> 8             <div>${user.password}</div> 9         </center>10     </c:forEach>11     <center>12     <c:if test="${pageNos>1 }">13 <a href="pageServlet?pageNos=1" >首頁</a>14 <a href="pageServlet?pageNos=${pageNos-1 }">上一頁</a>15 </c:if>16 <c:if test="${pageNos <countPage }">17 <a href="pageServlet?pageNos=${pageNos+1 }">下一頁</a>18 <a href="pageServlet?pageNos=${countPage }">末頁</a>19 </c:if>20 </center>21 <form action="pageServlet">22 <h4 align="center">共${countPage}頁  23 <input type="text" value="${pageNos}" name="pageNos" size="1">頁24 <input type="submit" value="go">25 </h4>26 </form>27   </body>

第二行中我們用<c:forEach >對session.setAttribute();中的內容進行擷取。注意,這裡我預設是每頁兩條資料,所以是(pageNos-1)*2,如果每頁N條資料則需將2改為N,當然N也可以從後台Servlet中擷取得到。

同時,因為我們在index.jsp中用了JSTL運算式,所以記得要匯入引用:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

到這裡我們就完成了一個簡單的分頁,快去試試吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.