Java Web 簡略的分頁顯示實例代碼。本站提示廣大學習愛好者:(Java Web 簡略的分頁顯示實例代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是Java Web 簡略的分頁顯示實例代碼正文
本文經由過程兩個辦法:(1)盤算總的頁數。 (2)查詢指定頁數據,完成簡略的分頁後果。
思緒:起首得在 DAO 對象中供給分頁查詢的辦法,在掌握層挪用該辦法查到指定頁的數據,在表現層經由過程 EL 表達式和 JSTL 將該頁數據顯示出來。
先給年夜家展現下後果圖:
題外話:該分頁顯示是用 “表現層-掌握層-DAO層-數據庫”的設計思惟完成的,有甚麼須要改良的處所年夜家提出來,配合進修提高。空話不多說了,開端進入主題,具體步調以下所示:
1.DAO層-數據庫
JDBCUtils 類用於翻開和封閉數據庫,焦點代碼以下:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JDBCUtils { private Connection conn=null; private PreparedStatement pstmt=null; /** * connect 銜接數據庫 * @return */ public Connection connect(){ String user="root"; String password="1234"; String driverClass = "com.mysql.jdbc.Driver"; String jdbcUrl = "jdbc:mysql://localhost:3306/book"; try { Class.forName(driverClass); conn = DriverManager.getConnection(jdbcUrl, user, password); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } /** * close 封閉數據庫 * @param conn * @param pstmt * @param resu */ public void close(Connection conn,PreparedStatement pstmt,ResultSet result){ if(conn != null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block } } if(pstmt != null){ try { pstmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(result != null){ try { result.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
UserDao 類中的辦法 getPage() 和辦法 listUser() 分離用來盤算總頁數和查詢指定頁的數據,焦點代碼以下:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.db.JDBCUtils; public class UserDao { /** * 盤算總的頁數 * @return */ public int getPage(){ int recordCount=0,t1=0,t2=0; PreparedStatement pstmt=null; ResultSet result=null; JDBCUtils jdbc=new JDBCUtils(); Connection conn=jdbc.connect(); String sql="select count(*) from books"; try { pstmt=conn.prepareStatement(sql); result=pstmt.executeQuery(); result.next(); recordCount=result.getInt(1); t1=recordCount%5; t2=recordCount/5; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ jdbc.close(conn, pstmt, result); } if(t1 != 0){ t2=t2+1; } return t2; } /** * 查詢指定頁的數據 * @param pageNo * @return */ public List<User> listUser(int pageNo){ PreparedStatement pstmt=null; ResultSet result=null; List<User> list=new ArrayList<User>(); int pageSize=5; int page=(pageNo-1)*5; JDBCUtils jdbc=new JDBCUtils(); Connection conn=jdbc.connect(); String sql="select * from books order by id limit ?,?"; try { pstmt=conn.prepareStatement(sql); pstmt.setInt(1, page); pstmt.setInt(2, pageSize); result=pstmt.executeQuery(); while(result.next()){ User user=new User(); user.setId(result.getInt(1)); user.setName(result.getString(2)); user.setNumber(result.getString(3)); list.add(user); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ jdbc.close(conn, pstmt, result); } return list; } }
User 類用於存儲查詢到的數據,焦點代碼以下:
public class User { private int id; private String name; private String number; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } }
2.掌握層
ListUser 類外部挪用 UserDao 對象查詢數據並指派頁面顯示數據,焦點代碼以下:
import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dao.User; import com.dao.UserDao; public class ListUser extends HttpServlet { public ListUser() { super(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("utf-8"); int pageNo = 1; UserDao userdao=new UserDao(); List<User> lists=new ArrayList<User>(); String pageno=request.getParameter("pageNos"); if(pageno != null){ pageNo=Integer.parseInt(pageno); } lists=userdao.listUser(pageNo); int recordCount=userdao.getPage(); request.setAttribute("recordCount", userdao.getPage()); request.setAttribute("listss", lists); request.setAttribute("pageNos", pageNo); request.getRequestDispatcher("userlist.jsp").forward(request, response); } public void init() throws ServletException { // Put your code here } }
3.表現層
輸入頁面 userlist.jsp ,應用 EL 和 JSTL 輸入查詢成果,焦點代碼以下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'userlist.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <style type="text/css"> th,td{width: 150px;border: 2px solid gray;text-align: center;} body{text-align: center;} a{text-decoration: none;} table {border-collapse: collapse;} </style> </head> <body> <h2 align="center">圖手札息</h2> <table align="center"> <tr><td>書號</td><td>書名</td><td>庫存量</td></tr> </table> <table align="center"> <c:forEach items="${listss}" var="person"> <tr> <td class="hidden-480">${person.id}</td> <td class="hidden-480">${person.name }</td> <td class="hidden-480">${person.number }</td> </tr> </c:forEach> </table> <br> <c:if test="${pageNos>1 }"> <a href="ListUser?pageNos=1" >首頁</a> <a href="ListUser?pageNos=${pageNos-1 }">上一頁</a> </c:if> <c:if test="${pageNos <recordCount }"> <a href="ListUser?pageNos=${pageNos+1 }">下一頁</a> <a href="ListUser?pageNos=${recordCount }">末頁</a> </c:if> <form action="ListUser"> <h4 align="center">共${recordCount}頁   <input type="text" value="${pageNos}" name="pageNos" size="1">頁 <input type="submit" value="達到"> </h4> </form> </body> </html>
以上所述是小編給年夜家引見的Java Web 簡略的分頁顯示實例代碼,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!