This article uses two methods: (1) to calculate the total number of pages. (2) Query the specified page data to achieve simple paging effect.
Idea: First, you must provide a pagination query method in the DAO object. Call this method at the control layer to find the data of the specified page, and display the data of the page through EL expressions and JSTL at the presentation layer.
Let me show you the renderings first:
Off topic: This page display is implemented using the design idea of "presentation layer-control layer-DAO layer-database". If you have any improvements, please propose it and learn and make progress together. Without further ado, start to enter the topic. The detailed steps are as follows:
1.DAO layer-database
The JDBCUtils class is used to open and close a database, and the core code is as follows:
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 Connect to the database* @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 blocke.printStackTrace();}return conn;}/*** close Close the database* @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 blocke.printStackTrace();}}if(result != null){try {result.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}The methods getPage() and method listUser() in the UserDao class are used to calculate the total number of pages and query the data of the specified page respectively. The core code is as follows:
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 {/*** Calculate the total number of pages* @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 blocke.printStackTrace();} finally{jdbc.close(conn, pstmt, result);}if(t1 != 0){t2=t2+1;}return t2;}/*** Query the data of the specified page* @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 blocke.printStackTrace();} finally{jdbc.close(conn, pstmt, result);}return list;}}The User class is used to store the queryed data, and the core code is as follows:
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. Control layer
The ListUser class calls the UserDao object to query data and assigns the page to display data. The core code is as follows:
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. Expression layer
The output page userlist.jsp is used to output query results using EL and JSTL. The core code is as follows:
<%@ 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">Book information</h2><table align="center"><tr><td>Book number</td><td>Book title</td><td>Inventory</td></tr></table><table align="center"><c:forEach items="${listss}" var="person"><tr><td>${person.id}</td><td>${person.name }</td><td>${person.number }</td></tr></c:forEach></table><br><c:if test="${pageNos>1 }"><a href="ListUser?pageNos=1" >Home</a><a href="ListUser?pageNos=${pageNos-1 }">Previous page</a></c:if><c:if test="${pageNos <recordCount }"><a href="ListUser?pageNos=${pageNos+1 }">Next page</a></c:if><form action="ListUser"><h4 align="center">Total ${recordCount} page <input type="text" value="${pageNos}" name="pageNos" size="1">page<input type="submit" value="arrival"></h4></form></body></html>The above is the simple pagination display example code of Java Web introduced to you by the editor. I hope it will be helpful to you. If you have any questions, please leave me a message and the editor will reply to you in time. Thank you very much for your support to Wulin.com website!