jsp使用 分頁專用工具

分頁器,根據過來的參數計算當著頁應當從哪一條記錄開始顯示,并且顯示到哪。

PageUtils [pageSize=5, currIndex=1, totalCount=166, totalPage=34, startPosition=0]
PageUtils [pageSize=5, currIndex=5, totalCount=166, totalPage=34, startPosition=20]
PageUtils [pageSize=5, currIndex=34, totalCount=166, totalPage=34, startPosition=165]
PageUtils [pageSize=5, currIndex=1, totalCount=166, totalPage=34, startPosition=0]
PageUtils [pageSize=5, currIndex=9, totalCount=166, totalPage=34, startPosition=40]
PageUtils [pageSize=10, currIndex=9, totalCount=166, totalPage=17, startPosition=80]

package src;public class TestPageUtils {public static void main(String[] args) {// TODO Auto-generated method stub//假設一頁顯示5條,現在有166條int pageSize =  5;int totalCount = 166;PageUtils pageUtils= new PageUtils(pageSize, totalCount);System.out.println(pageUtils);pageUtils.setCurrIndex(5);System.out.println(pageUtils);pageUtils.setCurrIndex(35);System.out.println(pageUtils);pageUtils.setCurrIndex(-1);System.out.println(pageUtils);pageUtils.setCurrIndex(9);		System.out.println(pageUtils);pageUtils.setCurrIndex(9);pageUtils.setPageSize(10);System.out.println(pageUtils);}}
package src;
/*** * @lwd*  分頁工具類**/
public class PageUtils {//相關成員變量// 頁大小,每頁顯示多少條記錄private int pageSize;//當前頁private int currIndex;//總記錄數private int totalCount;//總頁數private int totalPage;//開始的記錄開始的位置 private int startPosition;//一頁顯示多少條和一共有多少條記錄public PageUtils(int pageSize, int totalCount) {		this.pageSize = pageSize;this.totalCount = totalCount;currIndex = 1;//默認顯示第一頁startPosition = 0;//默認從第一條記錄開始顯示int pages=totalCount/pageSize;totalPage=totalCount%pageSize==0?pages:pages+1;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;int pages=totalCount/pageSize;totalPage=totalCount%this.pageSize==0?pages:pages+1;	startPosition=(currIndex-1)*pageSize;}public int getCurrIndex() {return currIndex;}public void setCurrIndex(int currIndex) {if(currIndex<1)currIndex=1;else if(currIndex>totalPage)currIndex=totalPage;		this.currIndex = currIndex;startPosition=(currIndex-1)*pageSize;}public int getTotalPage() {return totalPage;}public int getStartPosition() {return startPosition;}@Overridepublic String toString() {return "PageUtils [pageSize=" + pageSize + ", currIndex=" + currIndex + ", totalCount=" + totalCount+ ", totalPage=" + totalPage + ", startPosition=" + startPosition + "]";}}

JSP中調用。?

<%@page import="src.PageUtils"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ page import="
java.util.Date,
java.io.IOException,
java.io.PrintWriter,
java.sql.*
" %><%@ page import="src.User,src.Message"%><%Date date= new Date();SimpleDateFormat df= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");%>   <%!//留言表共有多少條記錄int getTotalCount() throws Exception{Class.forName("com.mysql.cj.jdbc.Driver");	 Connection con = DriverManager.getConnection("jdbc:mysql://mysql.sqlpub.com:3306/huangjin","laocooon","fc12f7a5215e8e0a");	 String sql = "SELECT COUNT(*) FROM message";	 PreparedStatement pstmt = con.prepareStatement(sql); //5.執行sql語句,并且接收結果 ResultSet rs = pstmt.executeQuery();rs.next();int res = rs.getInt(1);rs.close();pstmt.close();con.close(); return res;}%><%//獲取pageString pages=request.getParameter("pages");if(pages==null)pages = "1"; int currIndex = Integer.parseInt(pages); PageUtils pageUtils = new PageUtils(10,getTotalCount());//需要提供總記錄數pageUtils.setCurrIndex(currIndex);out.println(pageUtils);%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="./css/1102.css" rel="stylesheet" type="text/css" />
<title>訪客留言板</title></head>
<body>
<p>訪客留言板</p>
<p><%="使用的瀏覽器是:<span style='font-size:16px;'>"+request.getHeader("User-Agent")+"</span>" %></p>
<p><%="使用的ip是:"+request.getRemoteAddr() %></p>
<p><%="現在時間是:"+ df.format(date) %></p>
<p><a href=./index.jsp?#form>我要留言</a></p>
<p> <% //讀取message表中的所有記錄//1.導入jar包//2.注冊驅動//Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.cj.jdbc.Driver");//3.獲取連接Connection con = DriverManager.getConnection("jdbc:mysql://mysql.sqlpub.com:3306/huangjin","laocooon","fc12f7a5215e8e0a");//4.獲取執行者對象String sql = "SELECT * FROM message ORDER BY id DESC LIMIT ?,?";  PreparedStatement pstmt = con.prepareStatement(sql);pstmt.setInt(1,pageUtils.getStartPosition());pstmt.setInt(2,pageUtils.getPageSize());//5.執行sql語句,并且接收結果 ResultSet rs = pstmt.executeQuery();int i=pageUtils.getStartPosition()+1;while(rs.next()){String author=rs.getString(3);String id=""+rs.getInt(1);String message=rs.getString(2);String posttime=rs.getString(4);out.println("<div class='div1'>");out.println("<p id='p1'>作者:" + author + "</p>");out.println("<p id='p2'>#" + i++ + "</p>");out.println("<p id='p3'>" + message + "</p>");out.println("<p id='p4'>發布日期:" + posttime + "</p>");out.println("<p id='p5'><a href='./index.jsp?id=" + id + "#form'>回復</a></p>    ");out.println("</div>");	out.println("<br><br> ");	} rs.close();pstmt.close();con.close(); %>
<br>
<div style="text-align: right;">
[一頁<%=pageUtils.getPageSize() %>個]&nbsp;&nbsp;&nbsp;&nbsp;
<a href="index.jsp?pages=1">第一頁</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="index.jsp?pages=<%=pageUtils.getCurrIndex()-1%>">上一頁</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="index.jsp?pages=<%=pageUtils.getCurrIndex()+1%>">下一頁</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="index.jsp?pages=<%=pageUtils.getTotalPage()%>">最后頁</a>&nbsp;&nbsp;&nbsp;&nbsp;
</div> 
<br>
<form action='doadd.jsp' method='get'>
<a id="form"> 用&nbsp;&nbsp;戶&nbsp;&nbsp;名:</a><input type=text required name=you placeholder=請輸入你的姓名 /><br><br><%String id=request.getParameter("id");if(id==null){	out.println("留言信息:<textarea rows=4 cols=60 required name=text placeholder=留言處></textarea><br>");	}else{out.println("留言信息:<textarea rows=4 cols=60 required name=text placeholder=留言處>回復#"+ id +":</textarea><br>");}%><input type='submit'>&nbsp;&nbsp;&nbsp;&nbsp;<input type='reset'></form> 
</body>
</html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207981.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207981.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207981.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5.10 Windows驅動開發:摘除InlineHook內核鉤子

在筆者上一篇文章《內核層InlineHook掛鉤函數》中介紹了通過替換函數頭部代碼的方式實現Hook掛鉤&#xff0c;對于ARK工具來說實現掃描與摘除InlineHook鉤子也是最基本的功能&#xff0c;此類功能的實現一般可在應用層進行&#xff0c;而驅動層只需要保留一個讀寫字節的函數即可…

得帆云助力容百科技構建CRM系統,實現LTC全流程管理

寧波容百新能源科技股份有限公司 寧波容百新能源科技股份有限公司&#xff08;以下簡稱“容百科技”&#xff09;于2014年9月建立&#xff0c;是高科技新能源材料行業的跨國型集團公司。專業從事鋰電池正極材料的研發、生產和銷售&#xff0c;于2019年登陸上交所科創板&#x…

Python 數據分析:日期型數據的玩轉之道

更多資料獲取 &#x1f4da; 個人網站&#xff1a;ipengtao.com 在數據分析的領域中&#xff0c;處理日期型數據是至關重要的一環。Python 提供了豐富的工具和庫&#xff0c;使得對日期進行分析、處理、可視化變得更加輕松。本文將深入探討 Python 中如何玩轉日期型數據&#…

連鎖零售企業如何優化網絡性能?

在傳統的WAN網絡中&#xff0c;分支機構通常通過專線或者MPLS連接到總部或數據中心&#xff0c;但這種連接受制于地理位置。而SD-WAN&#xff08;Software-Defined Wide Area Network&#xff09;這種創新的網絡架構&#xff0c;它通過軟件定義和虛擬化技術&#xff0c;將分支機…

Javascript 前端分頁——根據頁面大小(pageSize)和總行數(total)計算總頁面數(totalPage)

分頁時&#xff0c;根據頁面大小&#xff08;pageSize&#xff09;和總行數&#xff08;total&#xff09;&#xff0c;計算總頁面數&#xff08;totalPage&#xff09; 一&#xff1a;總行數取余頁面大小&#xff0c;等于0&#xff0c;則頁數為整頁數&#xff0c;否則有余數&a…

解讀鏈上經濟“一等公民”:加密AI代理的優勢和前沿應用

機器人正在成為加密經濟的“一等公民”&#xff0c;最近的案例就能印證這一趨勢。 搜索者&#xff08;Searchers&#xff09;部署像Jaredfromsubway.eth這樣的機器人&#xff0c;利用真人用戶對便利的渴望在DEX搶先交易。Banana Gun和Maestro允許真人用戶通過Telegram的便利進…

力扣每日一題day31[101. 對稱二叉樹]

給你一個二叉樹的根節點 root &#xff0c; 檢查它是否軸對稱。 示例 1&#xff1a; 輸入&#xff1a;root [1,2,2,3,4,4,3] 輸出&#xff1a;true示例 2&#xff1a; 輸入&#xff1a;root [1,2,2,null,3,null,3] 輸出&#xff1a;fals 思路 對于二叉樹是否對稱&#xff…

二分查找算法

文章目錄 二分查找二分的實戰講解二分查找普通二分模版 在排序數組中查找元素的第一個和最后一個位置萬能二分模版 總結 二分查找 什么是二分查找:就是定義左右2個指針(此指針非真指針)取中間值 通過一次次取中間值找到要找到的數 二分的實戰講解 二分查找 題目:地址 題目解析…

ELK技術棧介紹及簡單使用實例

1. ELK技術棧介紹 引言 在當今數據驅動的世界里&#xff0c;有效地管理和分析大量日志數據變得至關重要。這里我們將深入探討ELK技術棧&#xff0c;這是一種流行的日志管理解決方案&#xff0c;它結合了三個開源項目&#xff1a;Elasticsearch、Logstash和Kibana。ELK技術棧因…

測試文檔---智力沖刺

文章目錄 項目背景測試計劃UI測試接口測試手工測試 測試總結 項目背景 項目描述&#xff1a;“智力沖刺”是一款網頁小游戲&#xff0c;就像我們平時看到的網頁游戲一樣&#xff0c;前端頁面負責展示游戲效果&#xff0c;后端服務器來實現游戲的邏輯。在我們的“智力沖刺”游戲…

YOLOv7 學習筆記

文章目錄 前言一、YOLOv7貢獻和改進二、YOLOv7核心概念三、YOLOv7架構改進總結 前言 在深度學習和計算機視覺領域&#xff0c;目標檢測一直是一個極具挑戰性和實用性的研究領域。特別是在實時目標檢測方面&#xff0c;準確率和速度之間的平衡成為了關鍵考量因素。YOLO&#xf…

C語言精選——選擇題Day40

第一題 1. int a[10] {2,3,5}, 請問a[3]及a[3]之后的數值是&#xff08;&#xff09; A&#xff1a;不確定的數據 B&#xff1a;5 C&#xff1a;0 D&#xff1a;0xf f f f f f f f 答案及解析 C 數組的不完全初始化&#xff0c;會自動把沒初始化的部分初始化為0&#xff1b; 第…

postman做接口自動化測試

接口是用來連接服務端和客戶端&#xff0c;一般返回的數據都是json。 get和post請求的區別&#xff1a; 1. get請求比post請求安全 2. get請求參數有長度限制&#xff0c;post請求沒有 3. get請求沒有body&#xff0c;參數都是放在url里面&#xff0c;而post請求是放在body…

大華DSS S2-045 OGNL表達式注入漏洞復現

0x01 產品簡介 大華DSS安防監控系統平臺是一款集視頻、報警、存儲、管理于一體的綜合安防解決方案。該平臺支持多種接入方式,包括網絡視頻、模擬視頻、數字視頻、IP電話、對講機等。此外,該平臺還支持多種報警方式,包括移動偵測、區域入侵、越線報警、人員聚集等。 0x02 漏…

元宇宙:重塑游戲行業體驗下一個前沿

游戲行業在其整個歷史中經歷了顯著的轉變&#xff0c;從超級馬里奧的像素化冒險發展到Red Dead Redemption等游戲中迷人的開放世界體驗。隨著時間的推移&#xff0c;游戲不斷突破數字領域所能達到的極限。然而&#xff0c;被稱為元宇宙的突破性演變將徹底改變游戲行業&#xff…

PO模式在selenium自動化測試框架有什么好處

PO模式是在UI自動化測試過程當中使用非常頻繁的一種設計模式&#xff0c;使用這種模式后&#xff0c;可以有效的提升代碼的復用能力&#xff0c;并且讓自動化測試代碼維護起來更加方便。 PO模式的全稱叫page object model&#xff08;POM&#xff09;&#xff0c;有時候叫做 p…

網工內推 | 外企、合資公司急招網工,國內外旅游,健身年卡

01 深圳市耐施菲信息科技有限公司 招聘崗位&#xff1a;網絡工程師 職責描述&#xff1a; 1、負責項目的計劃、實施、過程管控、項目驗收等工作&#xff1b; 2、負責大型項目設備實施、安裝調試等售后維護工作&#xff1b; 3、分析、設計網絡拓撲結構、配置H3C、華為等交換機…

SQL FOREIGN KEY 約束- 保障表之間關系完整性的關鍵規則

SQL FOREIGN KEY 約束 SQL FOREIGN KEY 約束用于防止破壞表之間關系的操作。FOREIGN KEY 是一張表中的字段&#xff08;或字段集合&#xff09;&#xff0c;它引用另一張表中的主鍵。具有外鍵的表稱為子表&#xff0c;具有主鍵的表稱為被引用表或父表。 以下是兩個表的例子&a…

dll動態鏈接庫【C#】

1說明&#xff1a; 在C#中&#xff0c;dll是添加 【類庫】生成的。 2添加C#的dll&#xff1a; &#xff08;1&#xff09;在VS中新建一個Windows應用程序項目&#xff0c;并命名為TransferDll。 &#xff08;2&#xff09;打開Windows窗體設計器&#xff0c;從工具箱中為窗體…

Unity 性能優化的手段【更新中】

目錄 對象池 減少Draw Calls 批處理 合并網格 貼圖集 LOD 基本原理 應用 優點 挑戰 LightMap 基本概念 如何工作 優點 缺點 對象池 使用對象池&#xff1a;頻繁地創建和銷毀對象會導致性能下降和內存碎片化。對象池可以預先創建一些對象&#xff0c;然后在需要時…