網頁的分頁功能的實現比較簡單,實現方法也多種多樣。
今天總結乙個簡單的jsp真分頁例項。
首先,提到分頁就要先明確乙個概念,何為真分頁何謂假分頁。
假分頁:一次性從資料庫讀出表的所有資料一次性的返回給客戶端,由js來控制每一頁的顯示。
真分頁:由程式控制,每一次只返回一頁大小的資料,顯示到客戶端。
由此可以很清楚的分辨出真假分頁各自的優缺點:
假分頁:由於一次性讀出所有資料並返回給客戶端,如果資料量龐大,所以這一次的動作可能是非常消耗伺服器資源和頻寬的,
但是返回給客戶端以後就非常輕鬆了,客戶在一段時間內不會再像伺服器端請求資源。但不代表可能出現一些意外情況,
比如說客戶將瀏覽器關閉,重新訪問**等。所以,如果資料量相當龐大,不建議使用用真分頁。
真分頁:假分頁每次只取需要的資料返回給客戶端,比起真分頁沒有那麼大的資料庫壓力。但也因為這個工作特性,所以假分頁
的方法需要頻繁和伺服器端進行互動。既然頻繁互動,自然也會給伺服器帶來負擔。
綜上:如果資料量較小,使用假分頁的效果會更優,如果資料量龐大,使用真分頁的效果更優。
分析完特性,下面就來列舉乙個簡單的真分頁例項。
真分頁是通過程式來控制的,每次向資料庫請求需要的資料。
簡述實現思路業務流程:
首先:客戶端帶著page引數請求客戶端,若沒有帶page引數,說明是第一次訪問,則page引數預設為0;
其次:服務端根據page引數,呼叫相關函式,從資料庫中取出表中資料,封裝成相關物件,返回給客戶端,並且返回新page引數及總頁數;
。資料庫操作類:
publicclass
dbbean
catch
(classnotfoundexception e)
}public
void
prepareconnection()
catch
(sqlexception e)
}//關閉連線
public
void
close()
catch
(sqlexception e)
con = null
;
try
catch
(sqlexception e)
pstmt = null
; }
//設定引數
private
void
setparems(string parems)
catch
(sqlexception e) }}
}public
resultset executequery(string sql,string parems)
catch
(sqlexception e)
finally
return
res;
}}
學生類:
publicclass
studentbean
public
void setid(long
id)
public
string getname()
public
void
setname(string name)
public
string getphone()
public
void
setphone(string phone)
public
intgetage()
public
void setage(int
age)
public
intgetscore()
public
void setscore(int
score)
}
學生資料操作類
publicclass studentdao implements
studentdaoin
} catch
(sqlexception e)
return
list;
}@override
public
intusercount()
catch
(sqlexception e)
return
count;
}}
相關業務邏輯
前台jsp**:
<table
id="t_stu"
border
="1"
cellpadding
="2"
cellspacing
="0"
>
<
thead
>
<
tr>
<
th>id
th>
<
th>姓名
th>
<
th>年齡
th>
<
th>**
th>
<
th>成績
th>
tr>
thead
>
<
c:foreach
items
="$"
var="st"
>
<
tr>
<
td>$
td>
<
td>$
td>
<
td>$
td>
<
td>$
td>
<
td>$
td>
tr>
c:foreach
>
table
>
<
br>
共 $頁 當前 第$頁
<
c:choose
>
<
c:when
test
="$"
>
<
a href
="getsutent?page=$"
><
input
type
="button"
value
>
a>
c:when
>
<
c:otherwise
>
<
input
type
="button"
value
disabled
="disabled"
/>
c:otherwise
>
c:choose
>
<
c:choose
>
<
c:when
test
="$"
>
<
a href
="getsutent?page=$"
><
input
type
="button"
value
>
a>
c:when
>
<
c:otherwise
>
<
input
type
="button"
value
disabled
="disabled"
/>
c:otherwise
>
c:choose
>
本例是真分頁的乙個簡單實現,有著明顯的缺點。
例如:1.在後台相關業務邏輯處,只對page做了簡單的判斷,因為查詢相關page時,引數是寫入前台a標籤中的,所以懂技術的使用者,可以隨意改動其值
由此查詢資料庫可能帶來意想不到的錯誤。
另外:實現假分頁時可以結合ajax和json。以此可實現無重新整理翻頁,看起來功能和真分頁一樣。。。
簡單的Jsp真分頁例項
首先,提到分頁就要先明確乙個概念,何為真分頁何謂假分頁。假分頁 一次性從資料庫讀出表的所有資料一次性的返回給客戶端,由js來控制每一頁的顯示。真分頁 由程式控制,每一次只返回一頁大小的資料,顯示到客戶端。由此可以很清楚的分辨出真假分頁各自的優缺點 假分頁 由於一次性讀出所有資料並返回給客戶端,如果資...
真分頁和假分頁
假分頁 從資料庫一次性取出所有資料繫結到控制項上,再將所有資料根據每頁顯示記錄條數進行分頁。使用gridview控制項來達到分頁的功能 資料繫結 using system using system.collections.generic using system.linq using system....
Java分頁查詢(真分頁)
在開發過程中,我們經常會從資料庫中查詢資料,然後在客戶端顯示出來。當資料少時,可以在乙個頁面顯示。當我們查詢幾百條以上資料,直接顯示在乙個頁面上,不僅瀏覽不方便,查詢效率也會受到影響,這是,我們就可以使用分頁查詢來解決這個問題。分析上面這個頁面,想要實現分頁,我們在頁面中需要顯示的資料有 本頁的資料...