freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于jasper的報(bào)表管理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)碩士學(xué)位論文(編輯修改稿)

2025-07-16 15:56 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 統(tǒng)的需求。 表現(xiàn)層技術(shù)綜述 JSP綜述JSP(Java Server Pages)[15]是一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它是在傳統(tǒng)網(wǎng)頁(yè)HTML中寫(xiě)入Java代碼和JSP標(biāo)記以形成JSP文件。它的應(yīng)用是跨平臺(tái)的。 JSP的特點(diǎn)JSP頁(yè)面是在java虛擬機(jī)上執(zhí)行的,當(dāng)JSP頁(yè)面發(fā)送請(qǐng)求后,服務(wù)器將JSP頁(yè)面編譯成Servlet,然后執(zhí)行并且用HTML的格式返回結(jié)果給用戶。相比較其他頁(yè)面技術(shù),JSP的優(yōu)勢(shì)如下:(1)JSP技術(shù)能夠一次性完成編寫(xiě);(2)JSP技術(shù)支持在不同的系統(tǒng)環(huán)境下運(yùn)行;(3)具備在多臺(tái)服務(wù)器上平均負(fù)載的能力,擁有較強(qiáng)的可伸縮性;(4)支持JSP技術(shù)的開(kāi)發(fā)工具比較多,功能也比較強(qiáng)大。但是在MVC框架下,JSP內(nèi)部或許會(huì)被用來(lái)填寫(xiě)Java代碼,極有可能造成MVC的結(jié)構(gòu)不完整[16]。 FreeMarker模板引擎綜述FreeMarker是一個(gè)用Java語(yǔ)言編寫(xiě)的模板引擎,它會(huì)通過(guò)模板引擎來(lái)形成數(shù)據(jù)進(jìn)行輸出。FreeMarker除了在表現(xiàn)層能夠展示信息外,它還可以輸出其他的文件格式,比如Java、XML等。它不依賴(lài)與Web容器而存在,也無(wú)法識(shí)別Servlet、HTTP等協(xié)議。 FreeMarker的特點(diǎn)FreeMarker的工作流程既簡(jiǎn)潔又清晰,其核心是模板與數(shù)據(jù)模型的結(jié)合來(lái)產(chǎn)生輸出,它具有以下特性:(1)通用目標(biāo)。支持各種格式的文本,例如HTML、XML、Java等,在各種框架下都可以使用,并不依賴(lài)于環(huán)境。(2)具有自己的控制語(yǔ)言。模板具有基本程序控制指令,在運(yùn)算時(shí),還可以使用復(fù)雜的表達(dá)式,在模板輸出時(shí),會(huì)自動(dòng)進(jìn)行HTML轉(zhuǎn)義、壓縮等。(3)通用數(shù)據(jù)模型。FreeMarker模板數(shù)據(jù)通過(guò)變量的形式顯示可用對(duì)象,而不是直接反射到Java對(duì)象。(4)Web無(wú)縫結(jié)合。經(jīng)過(guò)模板語(yǔ)言中自己創(chuàng)建的Web任務(wù)的處理,可徹底分離可視化設(shè)計(jì)和應(yīng)用程序業(yè)務(wù)邏輯。概括地來(lái)說(shuō),F(xiàn)reeMarker是用來(lái)制作模板的框架技術(shù),它具有自己的控制語(yǔ)言和可支持多種文本格式的模板[17]。但是,它也有不足之處,在普通頁(yè)面的表現(xiàn)能力上FreeMarker模板引擎的性能顯得比較差。 Velocity模板引擎綜述 Velocity的工作原理Velocity是一個(gè)基于java的表現(xiàn)Web頁(yè)面的模板引擎。它的的工作原理是這樣的:程序開(kāi)發(fā)人員和界面設(shè)計(jì)人員首先在一個(gè)模板中確定一組數(shù)據(jù),并分頭并行開(kāi)發(fā),程序開(kāi)發(fā)者將數(shù)據(jù)放入context對(duì)象中給頁(yè)面設(shè)計(jì)者引用,頁(yè)面設(shè)計(jì)者通過(guò)編寫(xiě)VTL語(yǔ)言創(chuàng)建頁(yè)面模板調(diào)用數(shù)據(jù)來(lái)完成具體的輸入輸出工作。context對(duì)象起到了兩者之間數(shù)據(jù)的傳遞作用[18]。Velocity引擎通過(guò)java程序?qū)?shù)據(jù)放入Context對(duì)象中,并讓模板調(diào)用Context對(duì)象中的數(shù)據(jù)形成各種輸出。 Velocity工作原理圖當(dāng)Velocity應(yīng)用于應(yīng)用程序時(shí),一般分以下幾步:(1)初始化Velocity;(2)創(chuàng)建context對(duì)象;(3)添加數(shù)據(jù)到context;(4)選擇模板;(5)融合模板和數(shù)據(jù),生成輸出界面[19]。 Velocity的特點(diǎn)在Java Web應(yīng)用中,通過(guò)對(duì)Velocity工作原理的分析,可以知道Velocity模板引擎有著這樣一些特點(diǎn):(1)VTL語(yǔ)言簡(jiǎn)單、靈活且功能強(qiáng)大?;赩TL語(yǔ)言簡(jiǎn)單易學(xué)的特點(diǎn),頁(yè)面的設(shè)計(jì)人員可以很好地掌握它,并且可以獨(dú)立承擔(dān)頁(yè)面設(shè)計(jì)工作,程序編寫(xiě)人員就無(wú)需再考慮頁(yè)面設(shè)計(jì)的工作,可以專(zhuān)心研究程序的編寫(xiě)與實(shí)現(xiàn),這種并行工作模式大大可以提升工作效率。(2)Velocity使得頁(yè)面與Java代碼分離。頁(yè)面與代碼的分離可以非常靈活地分別對(duì)頁(yè)面模板和程序代碼進(jìn)行修改而不會(huì)互相影響。(3)Velocity提高Web訪問(wèn)性能。當(dāng)Velocity頁(yè)面模板解析過(guò)后,再次使用時(shí)頁(yè)面的生成速度會(huì)比JSP還快,因?yàn)閂elocity頁(yè)面模板在解析過(guò)一次后,就把內(nèi)容放入內(nèi)存中,等待以后重復(fù)使用。同時(shí)。該技術(shù)也能夠很好地實(shí)現(xiàn)Java靜態(tài)頁(yè)面[20]。 Velocity的優(yōu)勢(shì)Velocity的優(yōu)勢(shì)在于它獨(dú)立于后臺(tái)組件,即使改變成其他的表現(xiàn)層模板也不會(huì)影響到后代組件的邏輯代碼。Velocity的語(yǔ)言比較簡(jiǎn)單,也很容易學(xué)會(huì)。Velocity通過(guò)隔絕視圖界面與邏輯層的聯(lián)系,相比較其他的腳本語(yǔ)言,它更能保證頁(yè)面的整潔性和可維護(hù)性。相比FreeMarker模板引擎,Velocity在普通頁(yè)面的性能表現(xiàn)上更加強(qiáng)大,所以,以Velocity模板引擎作為本系統(tǒng)的表現(xiàn)層是合理的。 MySQL綜述 MySQLMySQL作為一個(gè)小型的關(guān)系型數(shù)據(jù)庫(kù),由于其體積小、速度快、維護(hù)成本低,尤其是開(kāi)放源碼這一特點(diǎn),使得它獲得許多中小型網(wǎng)站的格外歡迎,在世界的各個(gè)領(lǐng)域都有著涉及和施展本領(lǐng)的空間[21]。 MySQL的特性MySQL具備很多很好的特性,為開(kāi)發(fā)人員和企業(yè)用戶提供支持。其主要特性如下:(1)采用C和C++編寫(xiě),多個(gè)編譯器提供支持,并擁有可移植能力。(2)支持多種操作系統(tǒng),比如AIX、FreeBSD、HPUX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等。(3)支持多種編程語(yǔ)言,例如C、C++、Python、Java、Perl、PHP、Eiffel和Ruby等。(4)支持多線程,可以將CPU的利用率大大提升。(5)基于查詢算法的優(yōu)化而擁有較高的查詢速度。(6)以獨(dú)立的軟件應(yīng)用存在于服務(wù)器或者以類(lèi)庫(kù)的形式置于別的應(yīng)用中。(7)支持多種數(shù)據(jù)庫(kù)連接類(lèi)型,比如TCP/IP、ODBC和JDBC等。(8)提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具。(9)支持大型數(shù)據(jù)庫(kù),通過(guò)一定優(yōu)化可以處理海量數(shù)據(jù)。(10)支持多種存儲(chǔ)引擎[22]。 MySQL的應(yīng)用MySQL數(shù)據(jù)庫(kù)與其他大型數(shù)據(jù)庫(kù)相比,例如Oracle、DBSQL Server等,自然有它的不足之處,比如功能不夠強(qiáng)大,處理能力有限等,但是它仍舊是目前一般的個(gè)人使用者和中小型網(wǎng)站數(shù)據(jù)庫(kù)使用的首選,因?yàn)樗峁┑墓δ芤呀?jīng)足夠,而且由于MySQL是開(kāi)源軟件,可以為使用者節(jié)省總體擁有成本。 持久層框架綜述 Hibernate框架綜述 HibernateHibernate是一個(gè)對(duì)JDBC進(jìn)行封裝的開(kāi)放源代碼的持久層框架,因?yàn)槭菍?duì)JDBC的輕型封裝,Java開(kāi)發(fā)人員能夠運(yùn)用對(duì)象編程的思想去控制數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)。而且它可以在Java軟件程序當(dāng)中使用,也可以在一些Web程序中使用,比如Servlet等。Hibernate作為持久層的框架,最主要的功能是能夠在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,使數(shù)據(jù)得到持久化。 Hibernate的特點(diǎn)Hibernate的代碼相當(dāng)簡(jiǎn)單,開(kāi)發(fā)時(shí)需要編寫(xiě)的代碼并不多,而且開(kāi)發(fā)的速度比較快。在對(duì)數(shù)據(jù)庫(kù)的封裝方面,Hibernate能力比較強(qiáng)大,能夠?qū)崿F(xiàn)POJO和數(shù)據(jù)庫(kù)表之間的映射,也能夠自動(dòng)生成和執(zhí)行SQL。Hibernate的劣勢(shì)就是學(xué)習(xí)門(mén)檻較高,而且在設(shè)計(jì)O/R映射方面,要找到性能和對(duì)象模型之間的平衡點(diǎn)比較難,需要我們擁有開(kāi)發(fā)的經(jīng)驗(yàn)和強(qiáng)大的學(xué)習(xí)能力。 iBATIS框架綜述 iBATISiBATIS Database Layer架構(gòu)是一個(gè)基于Java的以SQL為中心的持久層框架,擁有繼承、支持加載、關(guān)聯(lián)查詢等一些特點(diǎn)。而一般的ORM映射框架與它是不一樣的,其他的ORM映射框架提供的是一種元數(shù)據(jù)(metadata)映射,是將字段、數(shù)據(jù)庫(kù)表等映射到屬性和類(lèi)上。而iBATIS的作用與SQL Mapping的差不多,是將SQL查詢的參數(shù)和結(jié)果集映射到類(lèi)。iBATIS實(shí)現(xiàn)過(guò)程是,將SQL語(yǔ)句當(dāng)作是輸入和輸出的模塊,where條件參數(shù)對(duì)應(yīng)輸入,而結(jié)果集對(duì)應(yīng)輸出。iBATIS能將輸入的JavaBean對(duì)象、Map、基本數(shù)據(jù)類(lèi)型等映射到SQL的條件參數(shù)上,還能夠?qū)⒉樵兘Y(jié)果投射到JavaBean對(duì)象、Map、基本數(shù)據(jù)類(lèi)型等參數(shù)對(duì)象上。iBATIS通過(guò)使用XML文件來(lái)完成對(duì)這些輸入和輸出的具體映射[23]。 iBATIS框架的原理圖 iBATIS框架的特點(diǎn)iBATIS框架的組件主要包括兩個(gè)部分,分別為DAO組件和SQL Maps組件。SQL Maps組件在開(kāi)發(fā)人員對(duì)Java對(duì)象以及一些DBMS系統(tǒng)進(jìn)行讀寫(xiě)操作時(shí),可以不一定使用JDBC的API,也可以在不耦合Java代碼與SQL語(yǔ)句的情況下實(shí)現(xiàn)。SQL Maps組件有以下四個(gè)特點(diǎn):(l)因?yàn)樵摻M件的功能,系統(tǒng)可以擁有更大的設(shè)計(jì)空間。它基于XML配置文件,能夠?qū)avaBean映射成SQL語(yǔ)句,而一般的ORM工具,比如Hibernate等,只能將SQL語(yǔ)句映射成Java對(duì)象[24]。(2)SQL語(yǔ)句的輸入和輸出參數(shù)不是唯一的,可以是其他各種類(lèi)型,例如包裝類(lèi)、簡(jiǎn)單類(lèi)等,當(dāng)然也可以是比較復(fù)雜的類(lèi)型。(3)在特殊情況下,一些Java屬性、SQL字段列值映射等可以基于數(shù)據(jù)庫(kù)操作和特別的需求需要配置特殊的設(shè)定。(4)比較其他的框架,這個(gè)SQL Map框架更加簡(jiǎn)單,也更容易使用代碼實(shí)現(xiàn)設(shè)計(jì)。從圖中可以看到,使用SQL Map框架可以使其訪問(wèn)數(shù)據(jù)庫(kù)的代碼變得非常簡(jiǎn)單 [25]。 JDBC與iBATIS程序框架比較圖通過(guò)這兩個(gè)持久層框架的描述和比較,我們發(fā)現(xiàn)以下幾點(diǎn):(1)iBATIS更加容易理解,而Hibernate則更難處理,一般學(xué)習(xí)的起點(diǎn)也比較高。(2)在進(jìn)行二次開(kāi)發(fā)時(shí),iBATIS會(huì)比Hibernate更具有靈活性,因?yàn)槎伍_(kāi)發(fā)對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)的操作會(huì)比較困難。(3)Hibernate能夠自己生成SQL語(yǔ)句,非常方便,而iBATIS則必須手動(dòng)去編寫(xiě)SQL,所以如果在需求量差不多的情況下,Hibernate的工作量會(huì)比iBATIS少得多。(4)當(dāng)我們需要處理大數(shù)據(jù),需要滿足非常高的性能要求的時(shí)候,iBATIS可以優(yōu)化SQL語(yǔ)句的特性決定了它會(huì)比Hibernate擁有更大的優(yōu)勢(shì)。所以,iBATIS持久層框架更加適合我們的系統(tǒng)開(kāi)發(fā)環(huán)境。 本章小結(jié)本章具體分析了JasperReports報(bào)表開(kāi)發(fā)工具的內(nèi)容,介紹了JasperReports相關(guān)特點(diǎn),分析了jasper技術(shù)的優(yōu)缺點(diǎn),根據(jù)需求,說(shuō)明了選擇jasper的必要性。對(duì)于MVC框架技術(shù)的討論,主要放在Struts2框架和SpringMVC框架上,通過(guò)分析它們的特性,比較兩者的優(yōu)缺點(diǎn),最終確定擁有清晰的角色劃分、可重用的業(yè)務(wù)代碼等優(yōu)點(diǎn)的SpringMVC框架更適合報(bào)表管理系統(tǒng)的開(kāi)發(fā)。在表現(xiàn)層技術(shù)方面,主要分析了JSP、Velocity模板這兩個(gè)技術(shù)。每一個(gè)技術(shù)都有其特點(diǎn),針對(duì)報(bào)表系統(tǒng)需要開(kāi)發(fā)簡(jiǎn)單靈活、功能強(qiáng)大、頁(yè)面與代碼分離等特性,我們可以選擇使用Velocity模板結(jié)合一部分JSP頁(yè)面的形式作為表現(xiàn)層。而在系統(tǒng)的持久層上,主要是對(duì)Hibernate框架和iBATIS框架進(jìn)行了綜述。通過(guò)對(duì)兩個(gè)框架的比較與分析,發(fā)現(xiàn)iBATIS框架有著比其他框架更加簡(jiǎn)單易懂、開(kāi)發(fā)便捷的優(yōu)勢(shì)。59浙江大學(xué)碩士學(xué)位論文 第3章 報(bào)表管理平臺(tái)架構(gòu)設(shè)計(jì)第3章 報(bào)表管理平臺(tái)架構(gòu)設(shè)計(jì) 平臺(tái)架構(gòu)設(shè)計(jì)的概述報(bào)表管理平臺(tái)的主要作用是管理和實(shí)現(xiàn)報(bào)表,用戶在平臺(tái)上可以輸入報(bào)表參數(shù)(比如報(bào)表類(lèi)型、日期等),通過(guò)運(yùn)行報(bào)表模板來(lái)產(chǎn)生最終報(bào)表。平臺(tái)的架構(gòu)設(shè)計(jì)是對(duì)前一章技術(shù)綜述的具體應(yīng)用,它的合理與否將直接影響到報(bào)表管理平臺(tái)在功能和性能上的優(yōu)劣,是實(shí)現(xiàn)整個(gè)系統(tǒng)的重點(diǎn)。本章將從報(bào)表管理平臺(tái)的業(yè)務(wù)流程以及技術(shù)框架方面來(lái)設(shè)計(jì)整體平臺(tái)架構(gòu) [26]。 平臺(tái)的業(yè)務(wù)流程設(shè)計(jì)報(bào)表管理平臺(tái)的業(yè)務(wù)功能模塊主要展示了每一個(gè)模塊的具體功能以及模塊與模塊之間相互的作用和聯(lián)系,能夠提供結(jié)構(gòu)清晰的業(yè)務(wù)功能和流程分析。基于用戶需求,主要分為三層:外部系統(tǒng)層、業(yè)務(wù)邏輯層和資源庫(kù)層。每一層都有其各自的功能特點(diǎn)。 報(bào)表管理平臺(tái)的整體業(yè)務(wù)功能圖(1)資源庫(kù)層:報(bào)表所使用的數(shù)據(jù)、模板和用戶角色的賬號(hào)等都來(lái)自資源庫(kù)層,它的內(nèi)容包含數(shù)據(jù)庫(kù)和報(bào)表引擎庫(kù),包括報(bào)表的類(lèi)型數(shù)據(jù)、報(bào)表模板數(shù)據(jù)、用戶數(shù)據(jù)等,主要作用是提供這些數(shù)據(jù)給業(yè)務(wù)邏輯層使用,為業(yè)務(wù)邏輯層建立完善的報(bào)表和用戶管理提供支持。對(duì)于數(shù)據(jù)庫(kù),我們使用持久層框架連接數(shù)據(jù)庫(kù)和業(yè)務(wù)邏輯層。對(duì)于報(bào)表引擎庫(kù),我們創(chuàng)建一個(gè)報(bào)表工廠結(jié)合報(bào)表引擎,使報(bào)表引擎擁有持久性、獨(dú)立性和低耦合性。(2)業(yè)務(wù)邏輯層:這一層提供報(bào)表類(lèi)型的選擇、報(bào)表模板的管理、用戶和角色的管理等內(nèi)容,而報(bào)表模板的內(nèi)容又需要數(shù)據(jù)源以及相關(guān)參數(shù)的提供與支持。當(dāng)每次需要用到報(bào)表管理或者用戶角色管理等功能時(shí),只需要調(diào)用相關(guān)業(yè)務(wù)邏輯的功能模塊并傳入相關(guān)參數(shù)就能很容易地完成操作,并返回所需要的內(nèi)容。這一層的功能模塊也相對(duì)獨(dú)立、可擴(kuò)展時(shí)對(duì)其他模塊影響較小。(3)外部系統(tǒng)層:也稱(chēng)UI層。這是用來(lái)展示窗口和報(bào)表的模塊,包括報(bào)表模板管理界面、用戶管理界面、角色管理界面和其他相關(guān)的界面。它是用戶使用此報(bào)表管理平臺(tái)的入口,通過(guò)這些界面用戶才能操作和管理相關(guān)的功能模塊[27]。通過(guò)對(duì)三個(gè)層級(jí)的逐一分析,我們發(fā)現(xiàn)每一層的功能模塊各司其職,都有著自己的任務(wù)和實(shí)現(xiàn),將資源庫(kù)層、業(yè)務(wù)邏輯層和外部系統(tǒng)層結(jié)合到一起看,它的每個(gè)業(yè)務(wù)組件都有著自己的功能與流程。 報(bào)表模板管理報(bào)表模板管理模塊是整個(gè)報(bào)表管理系統(tǒng)的主要功能體現(xiàn),生成的報(bào)表對(duì)于用戶來(lái)說(shuō),無(wú)論在報(bào)表的內(nèi)容要素上,還是在報(bào)表的表現(xiàn)形式上,都有著直接而充滿影響力的重要特性。而報(bào)表管理系統(tǒng)在報(bào)表處理能力的強(qiáng)弱時(shí)刻反映著它的設(shè)計(jì)是否合理。報(bào)表管理模塊的功能一般是對(duì)報(bào)表模板的管理與維護(hù),模板是報(bào)表產(chǎn)生的前提和基礎(chǔ),是報(bào)表外在表現(xiàn)形式的元素提供方。以下是報(bào)表模板管理流程:1)用戶通過(guò)報(bào)表管理平臺(tái)進(jìn)入報(bào)表模板管理功能模塊;2)用戶可以進(jìn)行添加或者刪除報(bào)表模板等操作;3)用戶可以選擇所需的報(bào)表模板進(jìn)行編輯等操作;4)用戶在編輯界面下可以為模板選擇數(shù)據(jù)源的類(lèi)型;5)用戶手動(dòng)或者選擇參數(shù)進(jìn)行輸入操作;6)用戶可以為報(bào)表模板設(shè)置角色管理權(quán)限;7)用戶通過(guò)運(yùn)行報(bào)表操作讓系統(tǒng)調(diào)用報(bào)表引擎生成最終報(bào)表。2
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1