一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java Web 簡單的分頁顯示實例代碼

Java Web 簡單的分頁顯示實例代碼

2020-05-21 11:17沒頭沒腦沒煩惱 JAVA教程

這篇文章主要介紹了Java Web 簡單的分頁顯示實例代碼的相關資料,本文通過,計算總的頁數和查詢指定頁數據兩個方法實現分頁效果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

本文通過兩個方法:(1)計算總的頁數。 (2)查詢指定頁數據,實現簡單的分頁效果。

思路:首先得在 DAO 對象中提供分頁查詢的方法,在控制層調用該方法查到指定頁的數據,在表示層通過 EL 表達式和 JSTL 將該頁數據顯示出來。

先給大家展示下效果圖:

Java Web 簡單的分頁顯示實例代碼

題外話:該分頁顯示是用 “表示層-控制層-DAO層-數據庫”的設計思想實現的,有什么需要改進的地方大家提出來,共同學習進步。廢話不多說了,開始進入主題,詳細步驟如下所示:

1.DAO層-數據庫

JDBCUtils 類用于打開和關閉數據庫,核心代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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() 分別用來計算總頁數和查詢指定頁的數據,核心代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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 類用于存儲查詢到的數據,核心代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 對象查詢數據并指派頁面顯示數據,核心代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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 輸出查詢結果,核心代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<%@ 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 簡單的分頁顯示實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女班主任让我爽了一夜视频 | 四虎影视在线观看永久地址 | 国产靠逼视频 | 99任你躁精品视频 | 欧美有码 | 亚洲精品乱码久久久久久蜜桃图片 | 四虎tv在线观看884aa | 色视频亚洲| 国产精品欧美日韩一区二区 | 五月桃花网婷婷亚洲综合 | 成年极品漫画在线观看 | 亚洲一级视频在线观看 | 高h射尿| 金牛网155755水心论坛黄大父母 | 青青青国产在线 | h版小说 | 99re这里只有精品视频 | 国产日本免费 | 97伊人久久精品亚洲午夜 | 丁香久久婷婷 | 天堂网www在线观看 天堂欧美 | 亚洲天堂中文字幕 | 关晓彤被调教出奶水的视频 | 色综色| 97菊爱网| 精品一区二区三区视频日产 | 14一18cad中国大学生 | 天天干天天日天天射天天操毛片 | 免费日本在线视频 | 精品videoss另类日本 | xxxxxx国产精品视频 | 2020精品极品国产色在线观看 | 久久这里只有精品视频e | gay小太正初精 | 免费毛片在线观看 | 色综合综合 | 色色色资源站 | 办公室强行丝袜秘书啪啪 | 色聚网久久综合 | 国产精品成人va在线观看 | 青青草综合网 |