探究網(wǎng)絡(luò)應(yīng)用系統(tǒng)通用框架設(shè)計特點(diǎn)

時間:2022-02-21 08:27:00

導(dǎo)語:探究網(wǎng)絡(luò)應(yīng)用系統(tǒng)通用框架設(shè)計特點(diǎn)一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

探究網(wǎng)絡(luò)應(yīng)用系統(tǒng)通用框架設(shè)計特點(diǎn)

摘要:針對目前比較流行的網(wǎng)絡(luò)管理系統(tǒng),分析其具有的共性,同時利用Java和Struts技術(shù)開發(fā)一個通用的網(wǎng)絡(luò)管理系統(tǒng)框架。通過此框架可以提高系統(tǒng)開發(fā)的效率,縮短系統(tǒng)開發(fā)周期。

關(guān)鍵詞:通用框架;網(wǎng)絡(luò)應(yīng)用系統(tǒng);Struts;MVC

結(jié)合當(dāng)前比較流行的網(wǎng)絡(luò)開發(fā)技術(shù)Java和Struts,針對信息管理系統(tǒng)的共性,開發(fā)了適用于多數(shù)信息管理系統(tǒng)的通用框架結(jié)構(gòu),使用此結(jié)構(gòu)進(jìn)行系統(tǒng)地開發(fā)可以提高系統(tǒng)開發(fā)的效率,降低開發(fā)的成本,有利于系統(tǒng)的維護(hù)。

一、信息管理系統(tǒng)的共性

信息管理系統(tǒng)主要是針對數(shù)據(jù)進(jìn)行處理,盡管每個行業(yè)對于處理的信息有所不同,例如人員信息、產(chǎn)品信息、車輛信息等。但是對于這些信息管理系統(tǒng)來說,存在著很多的共性。例如,它們都使用關(guān)系型數(shù)據(jù)庫、XML或其他格式的數(shù)據(jù)文件來存儲這些信息;對這些信息都需要顯示、查詢、添加、修改、刪除等操作。如果能夠?qū)⑦@些操作封裝到一個共同的模塊中,無疑將會加快開發(fā)的進(jìn)度,降低程序產(chǎn)生bug的數(shù)量,程序員就可以把大部分精力投放到具體業(yè)務(wù)的處理上面。

除了上面一些共同點(diǎn)外,一個成功的軟件產(chǎn)品,還需要良好的操作界面、統(tǒng)一的界面風(fēng)格,或者可定做的各種屬性。而這些也都完全可以封裝到一個模塊中,定義成屬性文件。根據(jù)客戶的不同喜好,只需要修改屬性文件,就產(chǎn)生了外觀完全不同的另一套軟件產(chǎn)品。

利用MVC良好的設(shè)計模式,使用Struts技術(shù),完全可以對上述的基本操作功能和操作界面進(jìn)行完全的封裝,開發(fā)出適用于信息管理系統(tǒng)的通用框架。

二、模型一視圖一控制器

模型一視圖一控制器模式簡稱MVC模式,即Mode—View—Control,是交互式應(yīng)用程序廣泛使用的一種體系結(jié)構(gòu)。它可有效地存儲和展示數(shù)據(jù)的對象中區(qū)分功能模塊以降低它們之間的藕合度,這種架構(gòu)模式能將傳統(tǒng)的輸入、處理和輸出的模式轉(zhuǎn)化為圖形顯示用戶交互模式。MVC體系結(jié)構(gòu)具有3個層面,即模型(Model)、視圖(View)和控制(Controller)。

MVC架構(gòu)模式是針對交互式系統(tǒng),基于“分而治之”的思想,將系統(tǒng)分成不同的邏輯部件。換言之,這是對系統(tǒng)不同責(zé)任的劃分過程。這種架構(gòu)模式除了對系統(tǒng)本身帶來的優(yōu)點(diǎn)以外,對于項(xiàng)目管理也有很大的好處。它可以將開發(fā)團(tuán)隊(duì)按照MVC分成小組,擅長界面設(shè)計的人員開發(fā)視圖組件,精通業(yè)務(wù)的開發(fā)模型,對于整個系統(tǒng)都比較熟悉的可進(jìn)行控制器設(shè)計。

三、Struts技術(shù)

Struts是一種基于MVC經(jīng)典設(shè)計模式的開放源代碼的應(yīng)用框架,也是目前Web開發(fā)中比較成熟的一種框架。通過把Servlet,JSP,JavaBean、自定義標(biāo)簽和信息資源整合到一個統(tǒng)一的框架中,為Web開發(fā)提供了具有高可配置性的MVC開發(fā)模式。

Struts體系結(jié)構(gòu)實(shí)現(xiàn)了MVC設(shè)計模式的概念,它將Model,View和Controlle:分別映射到Web應(yīng)用中的組件。Model由代表系統(tǒng)狀態(tài)和業(yè)務(wù)邏輯的Action來構(gòu)建。在Struts中,系統(tǒng)的狀態(tài)主要由ActiomFormBean體現(xiàn),對于業(yè)務(wù)邏輯通常由JavaBean或EJB組件來實(shí)現(xiàn)。View是由JSP和Struts提供的自定義標(biāo)簽來實(shí)現(xiàn),Struts自身包含了一組可擴(kuò)展的自定義標(biāo)簽庫(Taglib),可以簡化創(chuàng)建用戶界面的過程。Controlle:負(fù)責(zé)控制流程,由ActionServlet和ActionMapping來完成。ActionServlet類是Struts框架中的核心組件,主要負(fù)責(zé)接收HTTP請求信息,并轉(zhuǎn)發(fā)給相應(yīng)的Action對象。Action類負(fù)責(zé)調(diào)用模型的方法、更新模型的狀態(tài),并幫助控制應(yīng)用程序的流程。當(dāng)ActionServlet接收HTTP請求信息時,把用戶請求轉(zhuǎn)發(fā)給哪個Action對象,這就需要一些描述用戶請求的路徑和Action映射關(guān)系的配置信息。在Struts中,這些配置映射信息都存儲在Struts-config。xml文件中,在該配置文件中,每一個Action的映射信息都通過一個(action)元素來配置。這些配置信息在系統(tǒng)啟動時會被讀人內(nèi)存,供Struts在運(yùn)行期間使用。在內(nèi)存中,每一個(action)元素都對應(yīng)一個ActionMapping類的實(shí)例。

四、通用框架設(shè)計

首先從整體上對通用框架進(jìn)行設(shè)計,圖1是所要設(shè)計通用框架的結(jié)構(gòu)圖。該框架在設(shè)計時,考慮了當(dāng)前數(shù)據(jù)庫盡管主要是以關(guān)系型數(shù)據(jù)庫為主,但也加人了對XML等文件存儲格式的數(shù)據(jù)處理。下面對框架中的主要部分進(jìn)行說明。

4.1DAO/DPO

在該框架中采用了數(shù)據(jù)訪問對象(DataAccessObject,簡稱DAO)設(shè)計模式。DAO模式提供了訪問關(guān)系型數(shù)據(jù)庫系統(tǒng)所需的所有操作接口,其中包括了創(chuàng)建數(shù)據(jù)庫,定義表、字段和索引,建立表間的關(guān)系,更新和查詢數(shù)據(jù)庫和執(zhí)行存儲過程等。

DAO模式將底層數(shù)據(jù)訪問操作與高層業(yè)務(wù)邏輯分離開,對上層提供面向?qū)ο蟮臄?shù)據(jù)訪問接口另外,該通用框架還提供了數(shù)據(jù)解析對象(DPO)設(shè)計模式。同DAO類似,它主要是提供了對XML或其他文件格式的數(shù)據(jù)進(jìn)行操作的所有接口。

同時在該框架中,還對應(yīng)2種設(shè)計模式提供了2個類,即DataAccessObject和DataParseObject。對于DataAccessObject,還提供了數(shù)據(jù)庫連接池,通過配置文件,可以設(shè)置是否使用連接池,同時還可以使用應(yīng)用服務(wù)器提供的連接池。由于當(dāng)前數(shù)據(jù)庫種類繁多,通過配置文件可以設(shè)置使用不同的數(shù)據(jù)庫,例如Oracle,SQLServer,MySQL等。

通過對數(shù)據(jù)操作的封裝,使通用框架具有了通用性。它把具體的業(yè)務(wù)對象和數(shù)據(jù)庫操作完全分離,不僅可以使程序員更專注于具體業(yè)務(wù)的處理,而且程序也易于維護(hù)和調(diào)試。

由于目前大多數(shù)信息管理系統(tǒng)都采用關(guān)系數(shù)據(jù)庫,因此也有很多的DAO組件,例如Hibernate,Cas-for。FreeForm等,在通用框架中也可以采用這些成熟的DAO組件。

4.2業(yè)務(wù)對象(BO)

業(yè)務(wù)對象,即BusinessObject,是對真實(shí)世界實(shí)體的軟件抽象,它包含數(shù)據(jù)和行為。它們對應(yīng)著數(shù)據(jù)庫中的一條或多條記錄,盡管不同業(yè)務(wù)之間的差距非常大,但是它們都共享一些公共的屬性,例如版本號、描述、操作者、操作時間、表名、列數(shù)等。因此,為了避免每個業(yè)務(wù)對象都重復(fù)定義這些公共屬性,需定義一個抽象父類來存放這些公共屬性,如果需要還可以在這個類中定義公共的業(yè)務(wù)邏輯,如分頁等。

該框架定義了一個抽象父類,即BaseBusines-sObject。它包含了業(yè)務(wù)對象所用到的公共屬性,所有的業(yè)務(wù)對象都必須繼承該父類。由于幾乎每個業(yè)務(wù)對象都需要分頁顯示,因此,在父類中還添加了分頁顯示的功能。在具體的項(xiàng)目中如果還有其他的公共屬性,程序員還可以對該類進(jìn)行擴(kuò)充。

4.3界面封裝設(shè)計

BiS結(jié)構(gòu)的操作界面基本是Html/JSP/Servlet,其中JSP是最常用且是最多的。對于JSP的各種標(biāo)簽,如按鈕、文本框、下拉框等,為了保持它們的界面風(fēng)格統(tǒng)一,可以采用自定義標(biāo)簽,定義屬性文件,也可以采用Struts提供的一些標(biāo)簽。

在該框架中,除了對界面風(fēng)格提供了屬性配置文件外,為了最大限度地減少JSP頁面中的Java代碼,還對JSP的操作進(jìn)行了封裝。現(xiàn)以員工基本信息為例進(jìn)行說明。建立一個員工信息頁面一personlist。jsp,該網(wǎng)頁包含3個通用網(wǎng)頁,即common。jsp,list_tool_top。jsp和list_data。jsp,common,jsp頁面中導(dǎo)人了常用類、Struts標(biāo)簽、自定義標(biāo)簽、頁面CSS樣式文件、javascript函數(shù)文件和共同變量等;list_tool_top。jsp中包含了查詢、刪除、保存、修改、排序等通用操作的邏輯處理,界面操作按鈕、分頁和操作類型的標(biāo)簽;,listdata。jsp文件主要用于數(shù)據(jù)顯示的功能。

personlist。jsp除了包含上述3個文件外,還需要定義本功能模塊action的target。因此,personlist。jsp作為一個完整功能模塊的數(shù)據(jù)操作界面,需要編寫的代碼行數(shù)僅有10行左右。

另外,通過在javascript函數(shù)對list-tool-top。jsp文件中操作類型的設(shè)置,可以把數(shù)據(jù)錄人、修改和查看3個功能在同一個界面中實(shí)現(xiàn)。這樣1個功能模塊的操作界面僅需要2個界面就完全實(shí)現(xiàn)了。

五、結(jié)束語

該通用框架是利用MVC和Struts,抽取了當(dāng)前信息管理系統(tǒng)的共同性進(jìn)行設(shè)計并實(shí)現(xiàn)的,并且在遼寧盤錦瀝青有限公司信息管理系統(tǒng)的設(shè)計和開發(fā)中得到了驗(yàn)證。實(shí)踐證明,利用這樣的應(yīng)用框架不但能提高開發(fā)效率,還能夠?qū)崿F(xiàn)框架和代碼的重用,且有利于系統(tǒng)維護(hù)。