国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

JSP開發(fā)環(huán)境下的數(shù)據(jù)分頁技術(shù)探討

2021-05-09 01:06潘國榮
現(xiàn)代信息科技 2021年20期
關(guān)鍵詞:開發(fā)模式

摘? 要:數(shù)據(jù)分頁是用JSP開發(fā)Web應用程序時經(jīng)常要用到的一種技術(shù)。在頁面上要展示從數(shù)據(jù)庫中取出的大量數(shù)據(jù)時,就需要對數(shù)據(jù)進行分頁處理,分頁處理主要涉及待分頁的記錄數(shù)據(jù)的獲取、記錄總數(shù)和總頁數(shù)的計算、每頁記錄數(shù)的設(shè)定、當前頁數(shù)據(jù)的存放等,這在不同的開發(fā)模式下處理過程是有區(qū)別的。文章對在JSP開發(fā)環(huán)境中三種不同開發(fā)模式下的數(shù)據(jù)分頁方法進行了探討。

關(guān)鍵詞:JSP;開發(fā)模式;數(shù)據(jù)分頁技術(shù)

中圖分類號:TP311? ? ? ? ? ? ? ? ? ? 文獻標識碼:A文章編號:2096-4706(2021)20-0033-03

Discussion on Data Paging Technology under JSP Development Environment

PAN Guorong

(Changzhou Liu Guojun Vocational Technology College, Changzhou? 213025, China)

Abstract: Data paging is a technology often used when developing Web applications with JSP. When you want to display a large amount of data taken from the database on the page, you need to page the data. The paging processing mainly involves the acquisition of the record data to be paged, the calculation of the total number of records and total pages, the setting of the number of records per page, the storage of the current page data, etc. the processing process is different under different development modes. This paper discusses the data paging methods under three different development modes in JSP development environment.

Keywords: JSP; development mode; data paging technology

0? 引? 言

JSP技術(shù)是現(xiàn)在常用的一種開發(fā)動態(tài)網(wǎng)站的技術(shù),在開發(fā)實際應用程序時,經(jīng)常要將數(shù)據(jù)庫中大量的數(shù)據(jù)取出后展示在頁面上,這就需要對數(shù)據(jù)進行分頁處理,否則頁面上要顯示的數(shù)據(jù)可能遠遠超出一個頁面范圍,應用程序界面對用戶來講就不太友好。本文根據(jù)本人開發(fā)的一個在教學中已實際使用的案例-學生成績基本信息維護系統(tǒng)為例,對基于不同的JSP開發(fā)模式下數(shù)據(jù)的分頁處理方法進行分析和論述。

1? 數(shù)據(jù)分頁處理概述

數(shù)據(jù)分頁就是將數(shù)據(jù)從后臺數(shù)據(jù)庫中查詢出來之后按用戶需要進行分頁顯示,每一頁上顯示一定數(shù)量的記錄數(shù)據(jù),使得數(shù)據(jù)的展示更加符合用戶需要,清晰、美觀合理。這時,我們可以用分頁技術(shù)。下面我們以學生信息維護系統(tǒng)中學生數(shù)據(jù)的分頁為例進行說明。程序運行時頁面中數(shù)據(jù)分頁情況如圖1所示。

數(shù)據(jù)庫的設(shè)計比較簡單,只要在其中設(shè)計一張學生基本信息表即可,表名為studenttb,表結(jié)構(gòu)如表1所示。

在進行分頁處理時,基本方法是先將要分頁的數(shù)據(jù)從數(shù)據(jù)庫表中取出,并存放至一個session范圍內(nèi)的對象中,然后計算出總的記錄數(shù),根據(jù)設(shè)定的每頁記錄數(shù)計算出總的頁數(shù),按照要顯示的目標頁的頁碼計算出當?shù)谝粭l記錄的位置,取出目標頁上的記錄數(shù)據(jù)進行顯示,頁面數(shù)據(jù)行下面的“首頁”“上一頁”“下一頁”“末頁”超鏈接按具體記錄條數(shù)進行顯示或隱藏處理。

2? 三種開發(fā)模式下數(shù)據(jù)分頁的分析、設(shè)計及實現(xiàn)

2.1? JSP+JavaBean開發(fā)模式

在這種模式下,先編制一個用于存放學生信息的JavaBean實體類,屬性與表studenttb對應。分頁處理的主要代碼都是寫在一個頁面文件studentlistbypage.jsp中的,在頁面的開始處:

//從sStudent獲取要分頁的數(shù)據(jù),存放至列表對象中

List sStudent=(List)session.getAttribute(“StudentList”);

int recordCount=0; //記錄總數(shù)

int pageSize=5; //設(shè)定的每頁記錄數(shù)

int pageCount=0; //總頁數(shù)

在表格的數(shù)據(jù)行之前,計算記錄總數(shù)、總頁數(shù),把記錄指針移指當前頁第一條記錄之前,取出要顯示的目標頁的數(shù)據(jù)顯示在表格數(shù)據(jù)行中:

recordCount=sStudent.size();

if( recordCount % pageSize==0)

pageCount=recordCount / pageSize;

else

pageCount=recordCount/pageSize + 1;

int start=(currentPage-1)*pageSize;

int n=0;

//循環(huán)取出pageSize條記錄

for(int i = start;i < sStudent.size();i++)

{

Student student=(Student)sStudent.get(i);

……

在表格的數(shù)據(jù)行下面形成的Goto及翻頁的超鏈接:

out.print(“首頁? “);

out.print(“上一頁? “);

out.print(“下一頁? “);

out.print(“末頁");

2.2? JSP+JavaBean+Servlet開發(fā)模式

在這種模式下,可以將存放分頁的數(shù)據(jù)、當前頁記錄數(shù)據(jù)、記錄總數(shù)、總頁數(shù)等一些變量的定義單獨組織在一個常量類Constants中,重點是編制一個Servlet類PageServlet,用作控制器。在該類中先根據(jù)傳入的要分頁的記錄數(shù)據(jù),計算出記錄總數(shù)、總頁數(shù),分離出目標頁中的記錄數(shù)據(jù),將這些數(shù)據(jù)保存起來,再轉(zhuǎn)至目標頁面;在頁面中,只要取出前面保存的數(shù)據(jù),直接用循環(huán)顯示出來即可。PageServlet.java類的關(guān)鍵代碼如下:

……

public class PageServlet extends HttpServlet

{

//doPost方法

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException

{

request.setCharacter Encoding(“utf-8”);

String strCurrentPage = request. getParameter (“currentPage”);

//計算記錄總數(shù)、總頁數(shù),分離出目標頁中的記錄數(shù)據(jù)

……

//保存相關(guān)數(shù)據(jù)至session級變量中

session.setAttribute (Const- ants.PageList, pageList);

session.setAttribute(Const- ants.RecordCount, recordCount);

session.setAttribute(Const- ants.PageCount? ,pageCount);

session.setAttribute(Const- ants.CurrentPage ,currentPage);

response.sendRedirect(“stud- entlistbypage.jsp”);

}

在頁面文件studentlistbypage.jsp中,取出Servlet類中保存的session范圍內(nèi)各變量的值,將當前頁的數(shù)據(jù)在數(shù)據(jù)行中顯示出來,表格的數(shù)據(jù)行下面形成的Goto及翻頁的超鏈接:

out.print(“首頁? “);

out.print(“上一頁? “);

out.print(“下一頁? “);

out.print(“末頁");

2.3? Struts框架模式

在這種模式下,主要是將Servlet類改成自定義動作類,用作控制器。自定義動作類PageAction的功能與PageServlet功能一致,編制時只需將PageServlet.java類文件中doPost()方法中的代碼復制至PageAction.java類文件中的execute()方法中進行修改,主要代碼如下:

……

public class PageAction extends Action

{

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception

{

String strCurrentPage =request.getParameter (“currentPage”);

……

//保存相差數(shù)據(jù)至session級變量中

session.setAttribute(Constants.PageList, pageList);

session.setAttribute(Constants.RecordCount, recordCount);

session.setAttribute(Constants.PageCount? ,pageCount);

session.setAttribute(Constants.CurrentPage ,currentPage);

return? ?mapping.findForward(“ListByPage”);

}

}

將第二種模式中的頁面文件studentlistbypage.jsp修改,將面前面超鏈接中原來對Servlet的調(diào)用改成對自定義動作類的調(diào)用:

out.print(“首頁? “);

out.print(“上一頁? “);

out.print(“下一頁? “);

out.print(“末頁");

3? 結(jié)? 論

在用JSP開發(fā)Web應用程序時,對數(shù)據(jù)進行分頁處理是經(jīng)常要用到的一種技術(shù)。本文通過學生基本信息數(shù)據(jù)進行分頁處理這樣一個實例,分析了在三種不同開發(fā)模式下數(shù)據(jù)分頁處理的方法及步驟,可以很方便地將其移植至其他JSP實際應用中,進一步簡化JSP的開發(fā)。

參考文獻:

[1] 馬建紅,李占波.JSP應用與開發(fā)技術(shù) [M].北京:清華大學出版社,2016.

[2] 張國權(quán),張凌子.Java Web程序設(shè)計實戰(zhàn) [M].上海:上海交通大學出版社,2017.

[3] 張銀鶴,劉治國,張豪.JSP動態(tài)網(wǎng)站開發(fā)實踐教程 [M].北京:清華大學出版社,2009.

[4] 孫更新,賓晟,周峰.Struts框架結(jié)構(gòu)的Java Web開發(fā)技術(shù)基礎(chǔ)與實踐教程 [M].北京:電子工業(yè)出版社,2008.

[5] 劉德山,金百東.Java程序設(shè)計 [M].北京:科學出版社,2012.

作者簡介:潘國榮(1966—),男,漢族,江蘇溧陽人,高級教師,高級程序員,本科,主要研究方向:計算機軟件應用技術(shù)。

猜你喜歡
開發(fā)模式
鼓浪嶼音樂旅游發(fā)展模式探析
淺談鄉(xiāng)村旅游的開發(fā)和利用
基于JSP技術(shù)的常用開發(fā)模式分析及運用
我國鄉(xiāng)村旅游驅(qū)動機制與開發(fā)模式研究
非物質(zhì)文化遺產(chǎn)的旅游開發(fā)模式與優(yōu)化策略
邢臺微營銷市場前景與開發(fā)模式研究