亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        圖表技術在Java Web應用程序中的應用研究

        2020-06-01 05:14:04張少應
        西安航空學院學報 2020年1期
        關鍵詞:統(tǒng)計圖表服務器端圖表

        張少應,張 濤

        (西安航空學院 計算機學院,西安 710077)

        0 引言

        隨著信息化建設的不斷發(fā)展,企業(yè)各下屬部門建立了各種功能的管理系統(tǒng),給企業(yè)的生產和銷售帶來了很大的幫助和便利,但這些系統(tǒng)存在架構差異較大、系統(tǒng)間數(shù)據(jù)不關聯(lián)、信息不互換共享、重復建設等問題。同時企業(yè)對數(shù)據(jù)的應用和要求越來越廣泛,企業(yè)開始將各類同構和異構的數(shù)據(jù)進行集成,使得數(shù)據(jù)量按級數(shù)增加,導致數(shù)據(jù)檢索與分析困難。針對上述問題,系統(tǒng)開發(fā)人員通常采用數(shù)據(jù)倉庫、數(shù)據(jù)挖掘、聯(lián)機分析、應用集成等技術,對海量數(shù)據(jù)進行分析處理,為管理層政策決策提供可靠的依據(jù)。在Web應用程序中,數(shù)據(jù)統(tǒng)計已從單純的文本顯示向多元化角度發(fā)展[1]。使用報表、圖表顯示的方式,更直觀地為管理層進行信息預測、政策制定提供可靠的保障,實現(xiàn)數(shù)據(jù)的可視化。

        1 常用圖表生成技術

        Java語言是企業(yè)級開發(fā)中常選的開發(fā)語言之一,目前在Java Web應用程序中使用的圖表生成技術有兩種:一是基于HTML5圖形庫的圖表組件(客戶端生成技術);二是基于服務器端生成技術。這兩種技術針對多種格式的數(shù)據(jù),為用戶提供了可以高度個性化定制的數(shù)據(jù)可視化圖表,基本都能滿足企業(yè)級開發(fā)的需求。

        1.1 基于客戶端生成技術

        在B/S應用系統(tǒng)開發(fā)中,基于客戶端生成技術通常采用Flash插件、基于HTML5的Canvas組件采用JavaScript+DIV等前臺開發(fā)技術,結合Ajax的異步更新工作方式,在不重新加載整個頁面的情況下,實現(xiàn)與服務器交換數(shù)據(jù),并更新部分網(wǎng)頁內容。其工作原理如圖1所示。

        圖1 基于客戶端生成技術的工作原理

        目前比較流行的技術有ECharts、Hightcharts等。這些軟件大多都是純JavaScript編寫的圖表庫,底層依賴輕量級的Canvas類庫,為用戶提供直觀、可交互、可高度個性化定制的數(shù)據(jù)可視化圖表[2-3]。使用該技術進行開發(fā)時,需要在頁面中引入該技術對應的庫文件以及自定義的JavaScript文件,在頁面添加一個DIV元素,作為放置圖表展示的容器;設置圖表類型配置項的參數(shù)值和圖表的渲染;定義解析函數(shù),完成處理XML、JSON格式數(shù)據(jù)的JavaScript加載文件,實現(xiàn)以圖表形式顯示業(yè)務邏輯數(shù)據(jù)的功能。

        1.2 基于服務器端生成技術

        基于服務器端的生成技術,通常都是采用Java技術開發(fā)的圖形圖表類庫,供Java Applets、Servlets以及JSP應用程序的調用,實現(xiàn)對后臺數(shù)據(jù)的處理,直接在瀏覽器中顯示交互式的圖表圖像,其工作原理如圖2所示。

        圖2 基于服務器端生成技術的工作原理圖

        目前比較流行的技術有JFreeChart[4-5]、JCharts、潤乾報表等,它們大多都使用純Java語言編寫,繼承其跨平臺的特性,在基于框架開發(fā)、MVC開發(fā)模式等Java Web應用程序中,都可以無縫的與該系統(tǒng)集成,為企業(yè)級數(shù)據(jù)分析與商業(yè)智能提供可靠的、直觀的統(tǒng)計分析圖表,為企業(yè)管理者的決策提供必要的參考。

        使用該技術進行開發(fā)時,用戶需要在項目中導入該技術對應的JAR庫文件,在Java類文件(JavaBean或Servlet)中,調用JAR文件中接口或類提供的方法,建立與后臺數(shù)據(jù)庫服務器交互的數(shù)據(jù)源;創(chuàng)建圖表對象,設置圖表類型項參數(shù)、圖形特性、顯示外觀等屬性值;使用JSP的動作標記,完成JSP頁面對Java類文件的調用,實現(xiàn)業(yè)務邏輯數(shù)據(jù)以圖表形式的直觀顯示。

        1.3 兩種技術的比較

        在Java應用開發(fā)中,兩種技術都可以同后臺數(shù)據(jù)庫進行交互,在Web應用程序中生成折線圖、餅狀圖、曲線圖、散點圖等各類動態(tài)統(tǒng)計圖,為用戶提供直觀的數(shù)據(jù)顯示模式;設置鼠標點擊時數(shù)據(jù)點顯示提示的效果,縮放過濾按需查看細節(jié),實現(xiàn)圖形的渲染等功能。但這兩種技術存在差異,主要表現(xiàn)在下述方面。

        1.3.1 數(shù)據(jù)加載過程

        在客戶端生成技術中,一般都采用Ajax實現(xiàn)動態(tài)數(shù)據(jù)的加載,其具體過程為:客戶端通過Ajax發(fā)送請求給Web服務器,服務器端通過Servlet接收用戶的請求,生成JSON格式的數(shù)據(jù)后,將結果反饋給客戶端??蛻舳私邮盏綌?shù)據(jù),通過JavaScript的解析函數(shù)對JSON數(shù)據(jù)處理后,繪制出滿足用戶查詢條件的統(tǒng)計圖表。

        在服務器端生成技術中,數(shù)據(jù)庫訪問層的Java類直接調用圖形圖表類庫中的接口或類,通過這些類提供的方法建立數(shù)據(jù)源。使用SQL或HQL語句操作后臺數(shù)據(jù)庫,完成對查詢數(shù)據(jù)的篩選。業(yè)務邏輯層通過調用數(shù)據(jù)庫訪問層的Java類、圖形圖表類庫提供的方法,完成對統(tǒng)計圖表的渲染。表示層通過JavaBean或者Servlet完成對業(yè)務邏輯層類的調用,實現(xiàn)圖表的正常顯示。

        同服務器端技術相比,絕大多數(shù)客戶端技術都需要將后臺數(shù)據(jù)進行二次處理(生成JSON、XML格式),客戶端接收到這些數(shù)據(jù)后,需重新解析后才能生成圖表,增加了編碼的難度。而服務器端技術直接操作后臺數(shù)據(jù)庫,生成對應的數(shù)據(jù)集或單元格數(shù)據(jù),處理效率高。

        1.3.2 運行加載速度

        使用服務器端生成技術開發(fā)的應用程序,大多都采用胖服務器架構形式,服務器的性能、訪問內容的冗余程度、網(wǎng)速帶寬和流量問題,影響圖表生成和瀏覽。在移動客戶端訪問時,圖表顯示會浪費大量流量,使得圖表加載的速度比較慢。而客戶端生成技術中,Web應用程序多采用瘦服務器架構,與圖表處理相關的好多代碼需在客戶端完成,Ajax技術的使用,使得不同的Ajxa請求在服務器端處理時間和客戶端處理時間上可能存在重疊部分,實現(xiàn)了服務器和瀏覽器并行工作[6],提升了網(wǎng)頁的加載渲染速度。隨著Adobe Flex技術在Web開發(fā)中應用,越來越多的B/S結構Web應用程序,都采用胖客戶端的形式,使這些Web應用程序的加載速度得到了明顯地提升。在服務器性能、處理數(shù)據(jù)量、查詢條件相同的條件下,其運行加載速度明顯快于服務器端生成技術。

        1.3.3 瀏覽器支持情況

        基于客戶端實現(xiàn)中,都會使用到圖形容器Canvas類庫,而對于低版本的瀏覽器一般都不支持該類庫,使得圖形的顯示效果受到明顯影響。例如,Echarts組件在360、IE8瀏覽器中不兼容,部分功能不能正常顯示?;诜掌鞫藢崿F(xiàn)中,雖然圖表生成代碼都在業(yè)務邏輯層和數(shù)據(jù)庫訪問層完成,但該技術在部分瀏覽器中兼容性較差。例如,JFreeChart在低版本的IE瀏覽器中就不能正常顯示統(tǒng)計圖。

        2 基于服務器端通用統(tǒng)計圖表生成技術的設計與實現(xiàn)

        2.1 實施方案設計

        在使用Java語言進行企業(yè)級應用開發(fā)中,大多都采用Struts2.x、Spring4和Hibernate4(簡稱SSH2)框架集成[7]的方法來進行系統(tǒng)開發(fā)。這種系統(tǒng)結構成熟、性能良好、運行穩(wěn)定,是目前許多企業(yè)級開發(fā)中首選的結構之一。選用框架集成的實施方案,可以更好地與采用框架集成技術系統(tǒng)的整合,降低開發(fā)的難度,具體實施方案如圖3所示。

        方案采用面向接口編程的思想,DAO實現(xiàn)與數(shù)據(jù)庫的交互,完成對底層數(shù)據(jù)庫的持久化;Service為控制器提供服務,完成對DAO的封裝,使得控制器實現(xiàn)無需直接訪問DAO方法,而是調用業(yè)務邏輯的方法;Action實現(xiàn)用戶界面與業(yè)務邏輯的交互。在該方案中,Spring的IoC容器負責管理業(yè)務邏輯組件、控制層組件以及持久層組件,利用依賴注入的優(yōu)勢,增強了系統(tǒng)的解耦,提高了系統(tǒng)擴展性,降低了系統(tǒng)重構的成本[8]。DAO編程模式的使用,使得數(shù)據(jù)訪問操作集中獨立在一層完成,在應用集成中,開發(fā)人員很容易在不同數(shù)據(jù)庫之間切換,獲取不同數(shù)據(jù)庫的數(shù)據(jù),提高了系統(tǒng)的可維護性和可移植性。

        為更好的與現(xiàn)有系統(tǒng)整合,可針對不同開發(fā)模式,選用不同的整合方法。當現(xiàn)有系統(tǒng)采用框架集成的方式,選用相同框架時可直接將該實施方案在系統(tǒng)中整合,以此完成不同數(shù)據(jù)源、統(tǒng)計圖顯示的設置;當現(xiàn)有系統(tǒng)采用其他開發(fā)模式時,將該實施方案發(fā)布為一個Web Service,通過Web服務方式完成與現(xiàn)有系統(tǒng)的集成。

        2.2 通用統(tǒng)計圖表生成技術的實現(xiàn)

        在基于服務器端統(tǒng)計表生成技術中(見圖3),開發(fā)人員需將圖表開發(fā)所需的JAR文件導入到Web工程中(以JFreeChart為例),為有效管理生成動態(tài)圖表,在web.xml中配置JFreeChart組件,通過該組件中的org.jfree.chart.servlet.DisplayChart類管理生成的圖片。在完成配置后,對來自不同應用的同構或異構數(shù)據(jù)進行整合,使用DAO模式創(chuàng)建JFreeChart圖表的數(shù)據(jù)集。在Action中創(chuàng)建JFreeChart對象,修改圖片的顯示屬性,美化圖片的顯示樣式,并以輸出流的方式獲取圖片。如果想在JSP頁面調用圖片,把圖片的src請求路徑設置為產生輸出流的Action即可,實現(xiàn)了與系統(tǒng)中其他功能模塊的無縫整合。

        圖3 框架集成的實施方案示意圖

        在具體實現(xiàn)時,為方便集成到新系統(tǒng),將連續(xù)不同數(shù)據(jù)源的基本信息(數(shù)據(jù)庫類型、用戶名、密碼等)存放在配置文件(.properties)中,使用Properties類完成數(shù)據(jù)源基礎信息的管理,驗證不同類數(shù)據(jù)庫連接是否正常。考慮到繪制統(tǒng)計圖時對數(shù)據(jù)庫的單表、多表操作,需要分析選擇數(shù)據(jù)庫表的數(shù)據(jù)是否滿足統(tǒng)計條件。對Excel格式數(shù)據(jù)的處理,則選用Java的POI組件對所選文件中單元格數(shù)據(jù)的隨機讀和寫。

        圖4 通用統(tǒng)計圖表生成技術的應用

        在通用統(tǒng)計圖表生成操作界面(見圖4)中,用戶可選擇不同數(shù)據(jù)源或導入Excel的數(shù)據(jù),配置圖表參數(shù)后,程序開發(fā)人員需要分析所選擇的數(shù)據(jù),判斷能否生成統(tǒng)計圖表。將該實施方案整合到現(xiàn)有系統(tǒng)中,開發(fā)人員無需進行數(shù)據(jù)庫訪問層代碼編寫,只要根據(jù)新系統(tǒng)的操作流程和客戶需求,完成業(yè)務邏輯層代碼二次開發(fā),簡化了開發(fā)過程,提高了開發(fā)效率。

        3 結語

        以直觀清晰的圖表展示企業(yè)生產過程中各個要素的數(shù)據(jù),為管理者決策提供可靠的參考,是企業(yè)級應用開發(fā)中常用的功能模塊?;诳蛻舳私y(tǒng)計圖表生成技術具有加載速度快、開發(fā)周期較短等優(yōu)勢,在數(shù)據(jù)處理難度較低的應用開發(fā)中,很好地滿足了PC端和移動端的開發(fā)要求。而基于服務器端的統(tǒng)計圖表生成技術具有數(shù)據(jù)處理效率高、安全性較高的特點,在同構或異構數(shù)據(jù)集成的應用開發(fā)中,能夠很好地將不同應用的數(shù)據(jù)以圖表形式,直觀地將統(tǒng)計數(shù)據(jù)展現(xiàn)給用戶。在服務器端統(tǒng)計圖表生成技術中,使用SSH2框架集成技術和DAO編程模式設計的實施方案,具有開發(fā)難度低、維護效率高、系統(tǒng)可擴展性強的優(yōu)勢,在系統(tǒng)集成開發(fā)中,具有推廣價值。

        猜你喜歡
        統(tǒng)計圖表服務器端圖表
        統(tǒng)計圖表的數(shù)據(jù)分析與應用
        2019年1-5月全國商用車市場銷售統(tǒng)計圖表
        商用汽車(2019年6期)2019-09-10 08:15:35
        2019年1-4月全國商用車市場銷售統(tǒng)計圖表
        商用汽車(2019年5期)2019-09-10 07:16:39
        淺析異步通信層的架構在ASP.NET 程序中的應用
        成功(2018年10期)2018-03-26 02:56:14
        雙周圖表
        足球周刊(2016年14期)2016-11-02 10:54:56
        雙周圖表
        足球周刊(2016年15期)2016-11-02 10:54:16
        雙周圖表
        足球周刊(2016年10期)2016-10-08 18:30:55
        圖表
        世界博覽(2016年16期)2016-09-27 18:25:26
        在Windows中安裝OpenVPN
        社會經(jīng)濟統(tǒng)計地理信息系統(tǒng)中統(tǒng)計圖表功能的實現(xiàn)
        一本大道在线一久道一区二区 | 久久综合这里只有精品| 日本黑人乱偷人妻在线播放| 极品少妇hdxx麻豆hdxx| 日本乱人伦在线观看| 亚洲国产精品500在线观看| 一区二区三区国产大片| 亚洲国产精品不卡av在线| 色综合视频一区中文字幕| 亚洲精品高清你懂的| 精品丝袜一区二区三区性色| 在线观看国产激情视频| 国产精品兄妹在线观看麻豆| 在线播放国产一区二区三区| 素人激情福利视频| 国产精品一区二区偷拍| 久久不见久久见免费影院国语| 7878成人国产在线观看| 青青草免费激情自拍视频| 日本成人午夜一区二区三区| 人妻少妇被粗大爽视频| 五月四房播播| 韩国v欧美v亚洲v日本v| 国产桃色精品网站| 日韩人妻精品视频一区二区三区| 99精品久久精品一区二区| 亚洲产国偷v产偷v自拍色戒| 女人一级特黄大片国产精品| 亚洲三级视频一区二区三区| 久久久久人妻精品一区蜜桃| 亚洲av美女在线播放啊| 免费在线观看草逼视频| 99在线精品免费视频| 国产性猛交╳xxx乱大交| 日本一区二区三区在线| 婷婷久久精品国产色蜜蜜麻豆| 国产精品久久久久影院| 国内成人精品亚洲日本语音| 久久精品人妻一区二三区| 国产精久久一区二区三区| 国产精品美女久久久久|