JavaWeb中的簡(jiǎn)單分頁(yè)完整代碼(推薦)
這次主要是講解一下通過登錄后對(duì)得到的數(shù)據(jù)進(jìn)行分頁(yè),首先我們新建一個(gè)登錄頁(yè)面login.jsp,因?yàn)槲覀冎饕獙W(xué)習(xí)一下分頁(yè),所以登錄驗(yàn)證的部分不再闡述,主要代碼如下:
<form action="pageServlet"> 用戶名:<input type="text" name="username"><br> 密 碼:<input type="text" name="password"><br> <input type="submit" value="提交"> </form>
首先建立實(shí)體類User.java并添加get和set方法:
public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
我們可以看到form表單是提交到pageServlet中,所以我們新建一個(gè)PageServlet,并在Servlet中獲取到數(shù)據(jù),同時(shí)做一些分頁(yè)的準(zhǔn)備,具體含義可以參照注釋理解,PageServlet代碼:
public class PageServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<User> list = new ArrayList<User>(); // 在這里我不再連接數(shù)據(jù)庫(kù)而是用虛擬的數(shù)據(jù)進(jìn)行測(cè)試效果,小伙伴可以連接數(shù)據(jù)庫(kù)查詢到之后返回一個(gè)list for (int i = 1; i < 7; i++) { User user1 = new User(); user1.setUsername("第" + i + "個(gè)用戶名"); user1.setPassword("第" + i + "密碼"); list.add(user1); } HttpSession session = request.getSession(); // 將數(shù)據(jù)存到session中以便于在前臺(tái)獲取 session.setAttribute("userList", list); //獲取當(dāng)前頁(yè)的頁(yè)數(shù)并轉(zhuǎn)為int類型,最終將數(shù)據(jù)存到session中 int pageNos; if (request.getParameter("pageNos") == null || Integer.parseInt(request.getParameter("pageNos")) < 1) { pageNos = 1; } else { pageNos = Integer.parseInt(request.getParameter("pageNos")); } session.setAttribute("pageNos", pageNos); // 定義總頁(yè)數(shù)并存到session中 int countPage = 3; // 在實(shí)際開發(fā)中我們的總頁(yè)數(shù)可以根據(jù)sql語句得到查詢到的總條數(shù),然后用總條數(shù)除每頁(yè)的條數(shù)得到總頁(yè)數(shù) session.setAttribute("countPage", countPage); request.getRequestDispatcher("index.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
在上述代碼中我們最終將轉(zhuǎn)發(fā)到index.jsp頁(yè)面,此時(shí)我們所有的數(shù)據(jù)都將顯示在index.jsp中,用JSTL和EL表達(dá)式獲取得到,index.jsp主要代碼如下:
<body> <c:forEach items="${userList}" var="user" begin="${(pageNos-1)*2 }" end="${pageNos*2-1}"> <center> <div>${user.username}</div> </center> <center> <div>${user.password}</div> </center> </c:forEach> <center> <c:if test="${pageNos>1 }"> <a href="pageServlet?pageNos=1" >首頁(yè)</a> <a href="pageServlet?pageNos=${pageNos-1 }">上一頁(yè)</a> </c:if> <c:if test="${pageNos <countPage }"> <a href="pageServlet?pageNos=${pageNos+1 }">下一頁(yè)</a> <a href="pageServlet?pageNos=${countPage }">末頁(yè)</a> </c:if> </center> <form action="pageServlet"> <h4 align="center">共${countPage}頁(yè) <input type="text" value="${pageNos}" name="pageNos" size="1">頁(yè) <input type="submit" value="go"> </h4> </form> </body>
第二行中我們用<c:forEach >對(duì)session.setAttribute();中的內(nèi)容進(jìn)行獲取。注意,這里我默認(rèn)是每頁(yè)兩條數(shù)據(jù),所以是(pageNos-1)*2,如果每頁(yè)N條數(shù)據(jù)則需將2改為N,當(dāng)然N也可以從后臺(tái)Servlet中獲取得到。
同時(shí),因?yàn)槲覀冊(cè)趇ndex.jsp中用了JSTL表達(dá)式,所以記得要導(dǎo)入引用:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
到這里我們就完成了一個(gè)簡(jiǎn)單的分頁(yè),快去試試吧。
以上所述是小編給大家介紹的JavaWeb中的簡(jiǎn)單分頁(yè)完整代碼(推薦),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java編程實(shí)現(xiàn)計(jì)算兩個(gè)日期的月份差實(shí)例代碼
這篇文章主要介紹了Java編程實(shí)現(xiàn)計(jì)算兩個(gè)日期的月份差實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Java通過HttpClient進(jìn)行HTTP請(qǐng)求的代碼詳解
Apache?HttpClient是一個(gè)功能強(qiáng)大且廣泛使用的Java庫(kù),它提供了方便的方法來執(zhí)行HTTP請(qǐng)求并處理響應(yīng)。本文將介紹如何使用HttpClient庫(kù)進(jìn)行HTTP請(qǐng)求,包括GET請(qǐng)求、POST請(qǐng)求、添加參數(shù)和請(qǐng)求體、設(shè)置請(qǐng)求頭等操作,需要的朋友可以參考下2023-05-05idea中springboot項(xiàng)目創(chuàng)建后追加依賴
在項(xiàng)目創(chuàng)建的時(shí)候選擇好依賴創(chuàng)建項(xiàng)目,之后追加依賴不是很方便,本文就來介紹一下idea中springboot項(xiàng)目創(chuàng)建后追加依賴,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Java用Cookie限制點(diǎn)贊次數(shù)(簡(jiǎn)版)
最近做了一個(gè)項(xiàng)目,其中有項(xiàng)目需求是,要用cookie實(shí)現(xiàn)限制點(diǎn)贊次數(shù),特此整理,把實(shí)現(xiàn)代碼分享給大家供大家學(xué)習(xí)2016-02-02java單鏈表實(shí)現(xiàn)書籍管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java單鏈表實(shí)現(xiàn)書籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11java實(shí)現(xiàn)簡(jiǎn)單的給sql語句賦值的示例
這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單的給sql語句賦值的示例,需要的朋友可以參考下2014-05-05