在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網(wǎng) 資料文庫 MVC模式的高??蒲泄芾硐到y(tǒng)論文范文

MVC模式的高??蒲泄芾硐到y(tǒng)論文范文

本站小編為你精心準(zhǔn)備了MVC模式的高校科研管理系統(tǒng)論文參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

MVC模式的高??蒲泄芾硐到y(tǒng)論文

1Struts2框架

Struts2是一個基于JAVAEE的mvc模式實(shí)現(xiàn)經(jīng)典框架,在Struts2框架中,視圖通常由HTML、JSP和Struts2標(biāo)簽表示,JSP頁面結(jié)合Struts2的標(biāo)簽庫構(gòu)成了視圖組件的主體;模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的JavaBeans或EJB組件構(gòu)成;控制器由核心控制器、業(yè)務(wù)邏輯控制器Action以及struts.xml配置文件共同組成,其中核心控制器是由Struts2框架提供的一個過濾器(StrutsPrepareAndExecuteFilter),負(fù)責(zé)接受用戶請求,并根據(jù)struts.xml調(diào)用Action,以及根據(jù)Action返回的邏輯結(jié)果和struts.xml的結(jié)果配置分派請求給視圖頁面。Action是開發(fā)人員自定義的一個類,負(fù)責(zé)調(diào)用模型響應(yīng)用戶請求,并返回邏輯結(jié)果??蛻舳撕秃笈_的數(shù)據(jù)交互通過Action類的屬性的setter和getter方法來實(shí)現(xiàn)。工作原理如圖2所示。從圖2我們可以看到,模型以及Struts2的業(yè)務(wù)邏輯Action都沒有與物理視圖直接關(guān)聯(lián),其中的Action只負(fù)責(zé)返回執(zhí)行結(jié)果,該執(zhí)行結(jié)果與怎樣的視圖資源關(guān)聯(lián),是由核心控制器和配置文件來決定的。這種做法可以提供很好的解耦,當(dāng)需要將某個邏輯視圖映射到不同的視圖資源時,無須修改Action的代碼,只要修改配置文件就可以了。開發(fā)人員使用Struts2實(shí)現(xiàn)控制器主要是創(chuàng)建業(yè)務(wù)邏輯控制器Action來調(diào)用Model實(shí)現(xiàn)業(yè)務(wù)邏輯處理、獲取模型數(shù)據(jù)以及返回用于映射物理視圖的邏輯視圖。

2系統(tǒng)設(shè)計

2.1系統(tǒng)功能設(shè)計高校科研管理系統(tǒng)在功能上包括組織管理、立項管理、項目管理、成果管理、知識管理、權(quán)限管理、流程管理和系統(tǒng)管理八個功能模塊,系統(tǒng)功能模塊結(jié)構(gòu)如圖3所示。

2.2系統(tǒng)總體框架高??蒲泄芾硐到y(tǒng)采用B/S架構(gòu),使用Struts2作為MVC架構(gòu)實(shí)現(xiàn)。按照MVC設(shè)計模式的抽象方法,根據(jù)圖3所示系統(tǒng)的功能模塊結(jié)構(gòu)圖,可建立如圖4所示的系統(tǒng)總體框架。部門管理視圖、人員管理視圖、知識管理視圖、系統(tǒng)管理視圖和權(quán)限管理視圖為系統(tǒng)管理員提供交互界面,負(fù)責(zé)接受系統(tǒng)管理員用戶的操作請求,以及將請求的處理結(jié)果呈現(xiàn)給系統(tǒng)管理員;項目管理視圖、立項管理視圖為科研人員、科研管理員、評審專家和主管院長提供交互界面,負(fù)責(zé)接受這些用戶的操作請求,以及將請求的處理結(jié)果呈現(xiàn)給請求的用戶;流程管理視圖給科研管理員提供交互界面,負(fù)責(zé)接受科研管理員用戶的操作請求,以及將請求的處理結(jié)果呈現(xiàn)給科研管理員。系統(tǒng)控制器由核心控制器StrutsPrepareandExecuteFilter、針對不同模塊創(chuàng)建的業(yè)務(wù)邏輯控制器Action類以及struts.xml配置文件。核心控制器接受用戶動作請求,并通過查詢struts.xml文件后將請求轉(zhuǎn)發(fā)給請求的Action實(shí)例,Action實(shí)例接收請求后調(diào)用模型的業(yè)務(wù)方法,業(yè)務(wù)方法執(zhí)行后返回結(jié)果給Action,Action根據(jù)業(yè)務(wù)方法執(zhí)行結(jié)果返回一個邏輯結(jié)果,核心控制器根據(jù)邏輯結(jié)果查詢struts.xml的結(jié)果配置,選擇視圖頁面。

3系統(tǒng)實(shí)現(xiàn)

系統(tǒng)功能設(shè)計:基于MVC模式的高??蒲泄芾硐到y(tǒng)中每一個模塊都利用了Struts2框架實(shí)現(xiàn)流程的控制,嚴(yán)格按照MVC分層模式來設(shè)計,實(shí)現(xiàn)業(yè)務(wù)邏輯和表現(xiàn)層邏輯的分離。下面以部門管理為例,詳細(xì)說明使用MVC的設(shè)計實(shí)現(xiàn)。

3.1業(yè)務(wù)邏輯控制器Action的實(shí)現(xiàn)部門管理的業(yè)務(wù)邏輯控制器由DepartmentAction類來實(shí)現(xiàn),該類的主要作用是調(diào)用業(yè)務(wù)邏輯類DepartmentServiceImpl的業(yè)務(wù)方法響應(yīng)用戶發(fā)來的各種操作請求,同時與各個視圖頁面實(shí)現(xiàn)數(shù)據(jù)的交互。DepartmentAction動作類中包括了addInput()、add()、updateInput()、update()、delete()和list()等業(yè)務(wù)處理方法,其中addInput()方法用于打開添加部門的JSP表單頁面,提交添加的部門信息到動作執(zhí)行添加前,首先調(diào)用setDepartment()將部門的各個信息封裝到department對象,并將department對象暫存在動作類的成員變量department中,最后再調(diào)用department!add.action動作執(zhí)行add()方法添加信息;add()方法通過調(diào)用DepartmentServiceImpl類的saveOrUpdateDepartment()方法實(shí)現(xiàn)持久化一條部門信息;updateInput()用于打開部門信息更新的JSP表單頁面,提交更新后的部門信息到動作執(zhí)行更新前,首先調(diào)用setDepartment()將部門的各個信息封裝到department對象,并將department對象暫存在動作類的成員變量department中,最后再調(diào)用department!update.action動作執(zhí)行update()方法更新信息;update()方法通過調(diào)用DepartmentServiceImpl的saveOrUpdateDepartment()方法更新部門信息;delete()方法調(diào)用了DepartmentServiceImpl類deleteDepartment(),實(shí)現(xiàn)對指定ID的部門信息的刪除,如果該部門存在下屬部門,則不允許刪除;list()方法調(diào)用DepartmentServiceImpl類listDepartments()來獲取某一級部門下的所有部門信息,如果所指定級別的部門的ID為0,則返回所有頂級部門的信息,最后返回“l(fā)ist”邏輯結(jié)果。在struts.xml文件中配置<resultname=”list”>/department/departmentList.jsp</result>,這樣就可以在動作返回“l(fā)ist”邏輯結(jié)果后,讓核心控制器將請求分派給站點(diǎn)根目錄下的department目錄下的departmentList.jsp物理視圖。動作類中的add()、update()和delete()三個方法執(zhí)行后都返回“success”邏輯結(jié)果,返回該結(jié)果后流程將重定向調(diào)用department!list.action動作執(zhí)行l(wèi)ist()方法,這樣,可以讓用戶實(shí)時看到自己的操作結(jié)果。系統(tǒng)使用了動態(tài)方法調(diào)用的方式來訪問動作實(shí)例,故可在struts.xml中對DepartmentAction進(jìn)行如下的配置。

3.2模型層(Model)的實(shí)現(xiàn)高??蒲泄芾硐到y(tǒng)的模型層使用了面向接口編程的方式來提高系統(tǒng)的靈活性,同時按負(fù)責(zé)內(nèi)容的不同,將其細(xì)分為業(yè)務(wù)邏輯層和數(shù)據(jù)持久層。業(yè)務(wù)邏輯層負(fù)責(zé)實(shí)現(xiàn)業(yè)務(wù)功能以及調(diào)用持久層方法實(shí)現(xiàn)數(shù)據(jù)的持久化,為動作提供服務(wù),包括DepartmentService接口和DepartmentServiceImpl實(shí)現(xiàn)類。數(shù)據(jù)持久層封裝了數(shù)據(jù)的CRUD操作,包括DepartmentDao接口和DepartmentDaoImpl實(shí)現(xiàn)類,其中包括了添加部門信息方法addDepartment()、更新部門信息方法updateDepartment()、按指定部門ID查找部門信息方法findDepartment()、刪除指定ID的部門信息方法deleteDepartment()和獲取某一部門的所有下屬部門信息方法listDepartments()。

3.3視圖層(View)的實(shí)現(xiàn)視圖層決定如何將數(shù)據(jù)展示給用戶,高??蒲泄芾硐到y(tǒng)的視圖部分主要是JSP頁面,包括列表某一部門的所有下屬部門的departmentList.jsp頁面、添加部門信息的表單頁面add_input.jsp和更新部門信息的表單頁面update_input.jsp。這些JSP頁面中使用了Struts2標(biāo)簽和OGNL表達(dá)式。departmentList.jsp使用了<s:iteratorvalue=”departments”>Struts2標(biāo)簽來迭代輸出每個部門的信息。Web服務(wù)器在解釋departmentList.jsp過程中,當(dāng)遇到<s:iteratorvalue=”departments”>標(biāo)簽時,會根據(jù)departments這個OGNL表達(dá)式,來調(diào)用動作類中的getDepartments()來獲得暫存在動作類成員變量departments中的值。在add_input.jsp頁面中的每個表單域的name屬性值均使用了“department.屬性名”(如:department.name)這樣的OGNL表達(dá)式,這樣在用戶輸入完各個信息點(diǎn)擊提交按鈕將信息提交給department!add.action動作處理時,動作根據(jù)表單域的OGNL表達(dá)式,首先執(zhí)行setDepartment()將部門的各個信息封裝到department對象,然后再將department對象暫存在動作類的成量變量department中。在update_input.jsp頁面跟add_input.jsp頁面很類似,主要不同的地方是在該頁面表單中包含了所要更新的部門的ID及其上級部門的ID,點(diǎn)擊提交按鈕后,更新后的部門信息提交給department!update.action動作處理,在執(zhí)行該動作之前,同樣根據(jù)表單域的OGNL表過式,首先執(zhí)行setDepartment()將部門的各個信息封裝到department對象,并將該對象暫存在動作類的成量變量department中。add_input.jsp和update_input.jsp通過setDepartment()就完成了將用戶輸入的數(shù)據(jù)傳遞給動作進(jìn)行處理的任務(wù),而departmentList.jsp則通過getDepartments()方法完成將動作獲取的模型數(shù)據(jù)傳遞給視圖的任務(wù)。setDepartment()和getDepartments()方法的調(diào)用全部通過Struts2提供的攔截器自動實(shí)現(xiàn),無需開發(fā)人員作任何的工作。另外,在調(diào)用setDepartment()方法進(jìn)行設(shè)值前,Struts2對用戶提交的各個信息自動進(jìn)行類型轉(zhuǎn)換,類型轉(zhuǎn)換不成功時自動將錯誤提示信息封裝為字段級別的錯誤信息,并自動顯示在相應(yīng)的Struts2表單域標(biāo)簽上面。可見,對于客戶端和后臺數(shù)據(jù)的交互、以及類型的轉(zhuǎn)換等常規(guī)功能Struts2都已幫我們實(shí)現(xiàn)了,因而可以很大程度上提高我們的開發(fā)效率。

4結(jié)束語

MVC模式具有一個模型對應(yīng)多個視圖、業(yè)務(wù)邏輯和顯示邏輯分離、不同組件被分隔在不同的層中等特點(diǎn),這些特點(diǎn)為軟件開發(fā)提供了許多優(yōu)良性能,諸如:模塊耦合度低,可擴(kuò)展性、可維護(hù)性和代碼重用性都比較高。開發(fā)高??蒲泄芾硐到y(tǒng)的實(shí)踐證明,使用基于MVC模式的Struts2框架,可以有效保障軟件可擴(kuò)展、可維護(hù)性安全性等軟件質(zhì)量,同時通過使用Struts2所提供的基礎(chǔ)功能以及Struts2標(biāo)簽和OGNL表達(dá)式等技術(shù)還可以簡化系統(tǒng)的開發(fā),極大的提高開發(fā)效率。

作者:聶常紅張屹李寶智單位:廣州大學(xué)華軟軟件學(xué)院

擴(kuò)展閱讀
主站蜘蛛池模板: 亚洲视频免费在线观看 | 真实国产乱人伦在线视频播放 | 亚洲免费色 | 亚洲男人在线天堂 | 日本精品久久久一区二区三区 | 国产精品视频免费看 | 国产成人免费在线视频 | 五色天 | 国产性一交一乱一伦一色一情 | 窝窝午夜看片 | 五月丁五月丁开行停停乱 | 亚洲天堂资源网 | 羞羞影院在线观看 | 在线免费观看色视频 | 日本久久久久久久 | 中文字幕99| 国产原创麻豆 | 欧美性影院 | 亚洲福利视频一区二区 | 亚洲高清二区 | 四虎影在线永久免费四虎 | 久久网欧美 | 国产手机在线小视频免费观看 | 欧美精品 在线观看 | 99久久精品国产一区二区成人 | 黄网国产 | 激情阁| 羞羞视频免费入口网站 | 婷婷综合影院 | 亚洲自拍偷拍专区 | 伊人狠狠丁香婷婷综合色 | 在线免费国产 | 自拍偷拍第一 | 在线亚洲观看 | 亚洲精品国产福利在线观看 | 亚洲国产精品综合久久2007 | 人成xxxwww免费视频 | 亚洲国产精品久久久久网站 | 波多野结衣在线免费观看视频 | 韩国美女福利专区一区二区 | 亚洲精品国产成人 |