• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

      中圖分類號(hào):TP311? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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)在常用的一種開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站的技術(shù),在開(kāi)發(fā)實(shí)際應(yīng)用程序時(shí),經(jīng)常要將數(shù)據(jù)庫(kù)中大量的數(shù)據(jù)取出后展示在頁(yè)面上,這就需要對(duì)數(shù)據(jù)進(jìn)行分頁(yè)處理,否則頁(yè)面上要顯示的數(shù)據(jù)可能遠(yuǎn)遠(yuǎn)超出一個(gè)頁(yè)面范圍,應(yīng)用程序界面對(duì)用戶來(lái)講就不太友好。本文根據(jù)本人開(kāi)發(fā)的一個(gè)在教學(xué)中已實(shí)際使用的案例-學(xué)生成績(jī)基本信息維護(hù)系統(tǒng)為例,對(duì)基于不同的JSP開(kāi)發(fā)模式下數(shù)據(jù)的分頁(yè)處理方法進(jìn)行分析和論述。

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

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

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

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

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

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

      在這種模式下,先編制一個(gè)用于存放學(xué)生信息的JavaBean實(shí)體類,屬性與表studenttb對(duì)應(yīng)。分頁(yè)處理的主要代碼都是寫在一個(gè)頁(yè)面文件studentlistbypage.jsp中的,在頁(yè)面的開(kāi)始處:

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

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

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

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

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

      在表格的數(shù)據(jù)行之前,計(jì)算記錄總數(shù)、總頁(yè)數(shù),把記錄指針移指當(dāng)前頁(yè)第一條記錄之前,取出要顯示的目標(biāo)頁(yè)的數(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及翻頁(yè)的超鏈接:

      out.print(“首頁(yè)? “);

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

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

      out.print(“末頁(yè)");

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

      在這種模式下,可以將存放分頁(yè)的數(shù)據(jù)、當(dāng)前頁(yè)記錄數(shù)據(jù)、記錄總數(shù)、總頁(yè)數(shù)等一些變量的定義單獨(dú)組織在一個(gè)常量類Constants中,重點(diǎn)是編制一個(gè)Servlet類PageServlet,用作控制器。在該類中先根據(jù)傳入的要分頁(yè)的記錄數(shù)據(jù),計(jì)算出記錄總數(shù)、總頁(yè)數(shù),分離出目標(biāo)頁(yè)中的記錄數(shù)據(jù),將這些數(shù)據(jù)保存起來(lái),再轉(zhuǎn)至目標(biāo)頁(yè)面;在頁(yè)面中,只要取出前面保存的數(shù)據(jù),直接用循環(huán)顯示出來(lái)即可。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”);

      //計(jì)算記錄總數(shù)、總頁(yè)數(shù),分離出目標(biāo)頁(yè)中的記錄數(shù)據(jù)

      ……

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

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

      }

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

      out.print(“首頁(yè)? “);

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

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

      out.print(“末頁(yè)");

      2.3? Struts框架模式

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

      ……

      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級(jí)變量中

      session.setAttribute(Constants.PageList, pageList);

      session.setAttribute(Constants.RecordCount, recordCount);

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

      session.setAttribute(Constants.CurrentPage ,currentPage);

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

      }

      }

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

      out.print(“首頁(yè)? “);

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

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

      out.print(“末頁(yè)");

      3? 結(jié)? 論

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

      參考文獻(xiàn):

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

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

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

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

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

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

      猜你喜歡
      開(kāi)發(fā)模式
      鼓浪嶼音樂(lè)旅游發(fā)展模式探析
      淺談鄉(xiāng)村旅游的開(kāi)發(fā)和利用
      商(2016年25期)2016-07-29 09:13:29
      基于JSP技術(shù)的常用開(kāi)發(fā)模式分析及運(yùn)用
      我國(guó)鄉(xiāng)村旅游驅(qū)動(dòng)機(jī)制與開(kāi)發(fā)模式研究
      非物質(zhì)文化遺產(chǎn)的旅游開(kāi)發(fā)模式與優(yōu)化策略
      人民論壇(2016年11期)2016-05-17 12:03:36
      邢臺(tái)微營(yíng)銷市場(chǎng)前景與開(kāi)發(fā)模式研究
      渭南市| 宁海县| 临泽县| 阿克陶县| 永顺县| 武山县| 嘉鱼县| 香港| 黎城县| 柘城县| 阜新| 吉林省| 惠州市| 体育| 湖州市| 陆河县| 台中市| 辽中县| 濮阳县| 石渠县| 阿勒泰市| 无锡市| 奉新县| 中山市| 澜沧| 天镇县| 女性| 内丘县| 正定县| 新宾| 溧阳市| 弋阳县| 沐川县| 醴陵市| 孝昌县| 鄱阳县| 南岸区| 黄石市| 栖霞市| 德州市| 凉城县|