国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Struts 2和Hibernate實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2018-10-21 15:07袁宏杰石爽康彥叢劉也暢
科技風(fēng) 2018年22期
關(guān)鍵詞:頁(yè)面架構(gòu)邏輯

袁宏杰 石爽 康彥叢 劉也暢

摘要:Struts 2是一個(gè)用來(lái)快速生成Model 2 應(yīng)用程序的框架,而Model 2 是基于MVC 模式的。用Struts 可簡(jiǎn)化Web 應(yīng)用的開(kāi)發(fā),增加了軟件重用率,解決了信息系統(tǒng)中開(kāi)發(fā)效率、降低成本、可擴(kuò)展性、靈活性等問(wèn)題。

關(guān)鍵詞: Struts2; MVC; Hibernate信息系統(tǒng)

基于Struts框架開(kāi)發(fā)出來(lái)的Web 應(yīng)用,越來(lái)越成熟,系統(tǒng)更靈活,并利用后期維護(hù)和管理。Struts2開(kāi)發(fā)更適合于團(tuán)隊(duì)協(xié)作開(kāi)發(fā),開(kāi)發(fā)成員可以按層開(kāi)發(fā),分工更加合理。

1 實(shí)驗(yàn)室管理信息系統(tǒng)的總體需求

實(shí)驗(yàn)室管理信息系統(tǒng)的總體需求,能夠?qū)崿F(xiàn)排課管理、實(shí)驗(yàn)室日常運(yùn)行管理、實(shí)驗(yàn)室設(shè)備管理、實(shí)驗(yàn)室人員管理、實(shí)驗(yàn)室耗材管理。整體功能結(jié)構(gòu)圖如下:

2 實(shí)驗(yàn)室管理信息系統(tǒng)的技術(shù)架構(gòu)

實(shí)驗(yàn)室管理信息系統(tǒng)系統(tǒng)基于Struts2和Hibernate提供了開(kāi)發(fā)基于 MVC 應(yīng)用模式的開(kāi)源框架進(jìn)行設(shè)計(jì),Struts實(shí)現(xiàn)了 MVC 的各項(xiàng)特性,并將其應(yīng)用于 Web 應(yīng)用開(kāi)發(fā)中。 Struts 提供的組件由 3 個(gè)部分,包括模型層、視圖層和控制器,在模型層與Hibernate框架耦合,實(shí)現(xiàn)對(duì)數(shù)據(jù)的松耦合和持久化訪問(wèn)。實(shí)驗(yàn)室管理信息系統(tǒng)的技術(shù)架構(gòu)如下圖所示

3 實(shí)驗(yàn)室管理信息系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)

數(shù)據(jù)庫(kù)設(shè)計(jì)是指根據(jù)用戶的需求,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,最終設(shè)計(jì)出數(shù)據(jù)庫(kù)的結(jié)構(gòu)和建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的過(guò)程。根據(jù)功能模塊的劃分,系統(tǒng)功能設(shè)計(jì)的要求,本系統(tǒng)采用 My SQL 設(shè)計(jì)。

4 實(shí)驗(yàn)室管理信息系統(tǒng)技術(shù)實(shí)現(xiàn)

系統(tǒng)設(shè)計(jì)成四架構(gòu)模式,表示層(Viewer),控制層(Controller), 服 務(wù) 層(DAO) 和 數(shù) 據(jù) 持 久 層(DataPersistence)。下面分別介紹它們的實(shí)現(xiàn)方式。

4.1 表示層技術(shù)實(shí)現(xiàn)

表示層主要采用Ajax(Asynchronous JavascriptAnd XML,異步 JavaScript 和 XML)和標(biāo)簽庫(kù)。首先客戶端初始化請(qǐng)求參數(shù)后轉(zhuǎn)發(fā)給業(yè)務(wù)邏輯層,最后將處理結(jié)果返回至客戶端。系統(tǒng)采用 Struts2 標(biāo)簽庫(kù)(Strutstags)和 ONGL 表達(dá)式來(lái)實(shí)現(xiàn)表示層的開(kāi)發(fā),在 JSP 文件中通過(guò) <%@ taglibprefix=“s” uri=“/Struts=tags”%> 引入標(biāo)簽庫(kù)。

4.2 控制層的實(shí)現(xiàn)

控 制 層 是 Struts2 框 架 的 核 心 組 件, 主 要由 Action 類 文 件 組 成。Struts2 控 制 器 有 兩 部 分,StrutsPrepareAndExecuteFilter 和業(yè)務(wù)控制器 Action。

排課模塊控制類為PaikeAction.java。實(shí)驗(yàn)室管理員點(diǎn)擊JSP視圖頁(yè)面的排課請(qǐng)求后,系統(tǒng)首先通過(guò) Request 對(duì)象到達(dá)系統(tǒng)的業(yè)務(wù)邏輯層,最終轉(zhuǎn)交給在 Struts.xml 文件中配置的paike.Action,一旦返回該Action,則會(huì)在配置文件中查找相應(yīng)的 Result。這些頁(yè)面和ActionMapper 一起通過(guò) Response 對(duì)象返回給排課請(qǐng)求的 URL。本模塊的控制層過(guò)程如下圖:

4.3 業(yè)務(wù)邏輯層的實(shí)現(xiàn)

在業(yè)務(wù)邏輯層,每個(gè)業(yè)務(wù)涉及到的持久層對(duì)象和數(shù)據(jù)訪問(wèn)對(duì)象(DAO)。業(yè)務(wù)邏輯層被設(shè)計(jì)在DAO 層之上,系統(tǒng)中會(huì)存在多個(gè)DAO 類,而業(yè)務(wù)邏輯類只有一個(gè),在本系統(tǒng)被設(shè)計(jì)成了一個(gè)接口,通過(guò)實(shí)現(xiàn)該接口來(lái)用于視圖組件與控制組件之間傳遞數(shù)據(jù)。業(yè)務(wù)邏輯層有兩個(gè)文件,ExamService.java 及其實(shí)現(xiàn)類ExamServiceImpl.java。如圖所示:

4.4 數(shù)據(jù)持久層的實(shí)現(xiàn)

實(shí)驗(yàn)室管理信息系統(tǒng)的DAO層實(shí)現(xiàn)是通過(guò)Hibernate API 來(lái)實(shí)現(xiàn)公共的 DAO 接口 , 首先取得當(dāng)前進(jìn)程的 Session 對(duì)象,利用Session對(duì)象開(kāi)始一個(gè)事務(wù)得到持久化對(duì)象,最后提交事務(wù),關(guān)閉Session。DAO 層調(diào)用 Hibernate提供的各種方法,用于實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯時(shí),將數(shù)據(jù)(對(duì)象)進(jìn)行持久化操作。

本系統(tǒng)通過(guò)DAO與ORACLE數(shù)據(jù)庫(kù)相連,所有配置及連接參數(shù)保存到hibernate.cfg.xml文件中。

5 系統(tǒng)實(shí)現(xiàn)的關(guān)鍵開(kāi)發(fā)策略

(1)為了提高系統(tǒng)的運(yùn)行效率,減少客戶端與應(yīng)用服務(wù)器的頻繁交互,將一些校驗(yàn)放到了頁(yè)面上進(jìn)行校驗(yàn),校驗(yàn)完成后,如果有錯(cuò)誤立即反饋給用戶,否則再提交服務(wù)器完成后續(xù)流程。

(2)系統(tǒng)采用插件實(shí)現(xiàn)異步提交的數(shù)據(jù),減少了因部分頁(yè)面修改要刷新全部頁(yè)面的操作,減輕了CPU的競(jìng)爭(zhēng)。

(3)改變了一個(gè)HTTP表單、ACTION、ActionForm一一對(duì)應(yīng)的關(guān)系,利用多個(gè)HTTP表單對(duì)應(yīng)一個(gè)ActionForm和Action,將不同的業(yè)務(wù)數(shù)據(jù),調(diào)用同一個(gè)Action的不同方法實(shí)現(xiàn),使程序流程更加清晰簡(jiǎn)練,便于后期維護(hù)管理。

6 結(jié)語(yǔ)

本研究?jī)?nèi)容是一個(gè)基于 MVC 模式的 B/S 架構(gòu)在實(shí)驗(yàn)室管理系統(tǒng)的設(shè)計(jì)方法及具體實(shí)現(xiàn)過(guò)程,該系統(tǒng)采用 Java EE 主流框架 Struts2 與Hibernate 作為技術(shù)路線,同時(shí)采用了開(kāi)源插件,實(shí)現(xiàn)了應(yīng)用數(shù)據(jù)在各層之間的低耦合高內(nèi)聚,提高了系統(tǒng)的可用性和可擴(kuò)展性。

參考文獻(xiàn):

[1]范新?tīng)N.基于 Struts、Hibernate、Spring 架構(gòu)的 Web應(yīng)用開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2014.09.

[2]李剛.輕量級(jí) Java EE 企業(yè)應(yīng)用實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2014.10.

[3]梁勝彬,喬保軍,李小麗,王金科,渠慎明,史蕊,王龍葛.Java Web應(yīng)用開(kāi)發(fā)與實(shí)踐[M].北京:清華大學(xué)出版社,2016.09.

猜你喜歡
頁(yè)面架構(gòu)邏輯
基于云控平臺(tái)霧計(jì)算架構(gòu)的網(wǎng)聯(lián)汽車路徑控制
邏輯
答案
讓W(xué)ord同時(shí)擁有橫向頁(yè)和縱向頁(yè)
我們還能有邏輯地聊天嗎
女生買買買時(shí)的神邏輯
女人買買買的神邏輯
VIE:從何而來(lái),去向何方
企業(yè)架構(gòu)的最佳實(shí)踐
三層架構(gòu)在企業(yè)信息化中的應(yīng)用
临沧市| 土默特右旗| 双柏县| 蓝田县| 保靖县| 天长市| 黔西| 福鼎市| 大姚县| 定襄县| 贵州省| 塔河县| 赣州市| 遂溪县| 斗六市| 伊春市| 平邑县| 兴山县| 平顶山市| 长沙市| 柳江县| 庆阳市| 贵定县| 台山市| 平阳县| 同心县| 西和县| 高密市| 财经| 湖北省| 滁州市| 昌吉市| 治县。| 怀仁县| 贵德县| 旌德县| 甘孜县| 白银市| 乐清市| 嘉荫县| 连城县|