999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JSP開發環境下的數據分頁技術探討

2021-05-09 01:06:57潘國榮
現代信息科技 2021年20期

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

關鍵詞:JSP;開發模式;數據分頁技術

中圖分類號: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技術是現在常用的一種開發動態網站的技術,在開發實際應用程序時,經常要將數據庫中大量的數據取出后展示在頁面上,這就需要對數據進行分頁處理,否則頁面上要顯示的數據可能遠遠超出一個頁面范圍,應用程序界面對用戶來講就不太友好。本文根據本人開發的一個在教學中已實際使用的案例-學生成績基本信息維護系統為例,對基于不同的JSP開發模式下數據的分頁處理方法進行分析和論述。

1? 數據分頁處理概述

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

數據庫的設計比較簡單,只要在其中設計一張學生基本信息表即可,表名為studenttb,表結構如表1所示。

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

2? 三種開發模式下數據分頁的分析、設計及實現

2.1? JSP+JavaBean開發模式

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

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

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

int recordCount=0; //記錄總數

int pageSize=5; //設定的每頁記錄數

int pageCount=0; //總頁數

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

recordCount=sStudent.size();

if( recordCount % pageSize==0)

pageCount=recordCount / pageSize;

else

pageCount=recordCount/pageSize + 1;

int start=(currentPage-1)*pageSize;

int n=0;

//循環取出pageSize條記錄

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

{

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

……

在表格的數據行下面形成的Goto及翻頁的超鏈接:

out.print(“首頁? “);

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

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

out.print(“末頁");

2.2? JSP+JavaBean+Servlet開發模式

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

……

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”);

//計算記錄總數、總頁數,分離出目標頁中的記錄數據

……

//保存相關數據至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范圍內各變量的值,將當前頁的數據在數據行中顯示出來,表格的數據行下面形成的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”);

……

//保存相差數據至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的調用改成對自定義動作類的調用:

out.print(“首頁? “);

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

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

out.print(“末頁");

3? 結? 論

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

參考文獻:

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

[2] 張國權,張凌子.Java Web程序設計實戰 [M].上海:上海交通大學出版社,2017.

[3] 張銀鶴,劉治國,張豪.JSP動態網站開發實踐教程 [M].北京:清華大學出版社,2009.

[4] 孫更新,賓晟,周峰.Struts框架結構的Java Web開發技術基礎與實踐教程 [M].北京:電子工業出版社,2008.

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

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

主站蜘蛛池模板: 亚洲国产av无码综合原创国产| 国产成人h在线观看网站站| 亚洲精品制服丝袜二区| 亚洲高清在线天堂精品| 国产人妖视频一区在线观看| 亚洲国产午夜精华无码福利| 波多野结衣二区| 亚州AV秘 一区二区三区| 青青草一区| 成人亚洲国产| 五月婷婷综合网| 精品国产aⅴ一区二区三区| 在线观看av永久| 蜜桃视频一区| 亚洲精选高清无码| 女人18毛片水真多国产| 亚洲免费黄色网| 亚洲一区波多野结衣二区三区| 亚洲AV无码乱码在线观看代蜜桃| 日韩福利在线视频| 欧美影院久久| 国产91全国探花系列在线播放| 丁香亚洲综合五月天婷婷| 亚洲AV一二三区无码AV蜜桃| 在线日韩日本国产亚洲| 国产精品无码久久久久AV| 中文天堂在线视频| 91亚洲精品国产自在现线| 二级毛片免费观看全程| 亚州AV秘 一区二区三区| 午夜天堂视频| 欧美成人手机在线观看网址| 91亚洲视频下载| 精品久久香蕉国产线看观看gif| 欧美国产日韩另类| 亚洲三级a| 精品自窥自偷在线看| 国产欧美日韩91| 欧美成a人片在线观看| 国产福利观看| 免费jjzz在在线播放国产| lhav亚洲精品| 国产成年无码AⅤ片在线| 91网在线| 婷婷在线网站| 国产女同自拍视频| 国产一区二区三区在线观看视频| 国产91丝袜在线播放动漫| 亚洲色图欧美视频| 国产电话自拍伊人| 伊人91视频| 中文字幕日韩视频欧美一区| 国产熟睡乱子伦视频网站| 久草国产在线观看| 成人av手机在线观看| 波多野结衣无码AV在线| 国产三级韩国三级理| 波多野结衣视频一区二区| 国产一区二区福利| 国产精品亚洲专区一区| 亚洲欧美在线精品一区二区| 亚洲国产成人精品无码区性色| 久久亚洲综合伊人| 久久精品一品道久久精品| 毛片手机在线看| 国产精品永久不卡免费视频| 91久久精品国产| 毛片基地美国正在播放亚洲| 亚洲无码视频喷水| 国产成人亚洲毛片| a天堂视频在线| 亚洲色图欧美激情| 亚洲精品国产自在现线最新| 欧美一级高清片久久99| 亚洲精品制服丝袜二区| 国产成人久视频免费| 乱人伦视频中文字幕在线| 欧美日韩一区二区在线免费观看 | 国产精品片在线观看手机版| 亚洲综合狠狠| 永久免费无码成人网站| 在线看片国产|