999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用Struts建立Web應(yīng)用的研究與實(shí)現(xiàn)

2009-04-29 00:00:00費(fèi)華英
電腦知識(shí)與技術(shù) 2009年25期

摘要:分析討論了MVC設(shè)計(jì)模式和Struts框架,說明了在Struts框架下Model、View、Controller三個(gè)功能模塊的之間的內(nèi)在聯(lián)系和處理流程,給出了某高級(jí)中學(xué)學(xué)校管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。

關(guān)鍵詞:MVC;Struts;架構(gòu);Web應(yīng)用;管理信息系統(tǒng)

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)25-7139-03

Research and Realization of the Web Application Established by Struts

FEI Hua-ying

(Computer Information Department, Hefei University of Technology, Hefei 230009, China)

Abstract: This article describes the concept of the MVC design pattern and Strutsframework,illustrates the internal correlationamong the functional modules of theModel、View and Controller and their processing process in Struts framework, the design and realization of a high school management information system.

Key words: MVC; Struts; framework; web application; MIS

大部分的Web應(yīng)用程序都是使用如ASP、PHP等過程化語言來創(chuàng)建的,這些語言將數(shù)據(jù)庫查詢語句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起,使得閱讀、調(diào)試和維護(hù)都困難重重。 為了使開發(fā)的Web應(yīng)用具有良好的可擴(kuò)展性和易于分工,必須做到將業(yè)務(wù)邏輯與用戶界面分離,以及將動(dòng)態(tài)頁面顯示邏輯與靜態(tài)的HTML代碼分離,而使用MVC模式來進(jìn)行開發(fā)是一種很好的解決方法。

MVC本身是一個(gè)非常復(fù)雜的系統(tǒng),所以采用MVC實(shí)現(xiàn)Web應(yīng)用時(shí),一般都會(huì)選用一個(gè)現(xiàn)成的MVC框架,在此之下進(jìn)行開發(fā),從而取得事半功倍的效果?,F(xiàn)在有很多可供使用的MVC框架,其中最為流行的是當(dāng)屬Struts,因?yàn)樗塑浖蚣芎拖嚓P(guān)的軟件包,能夠顯著提高Web開發(fā)的效率。

本文將MVC模式和Struts技術(shù)應(yīng)用到web系統(tǒng)的開發(fā)中,設(shè)計(jì)并完成了某高級(jí)中學(xué)校管理信息系統(tǒng)

1 MVC設(shè)計(jì)模式及架構(gòu)概述

MVC由TrygveReenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中構(gòu)建用戶界面。M代表模型Model,V代表視圖View,C代表控制器Controller。MVC設(shè)計(jì)模式的目的是增加代碼的重用率,減少數(shù)據(jù)表達(dá)、數(shù)據(jù)描述和應(yīng)用操作的耦合度,同時(shí)也使軟件可維護(hù)性、可修復(fù)性、可擴(kuò)展性、靈活性及封裝性大大提高。

1.1 MVC的結(jié)構(gòu)組成

對(duì)于界面設(shè)計(jì)可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視圖、控制器三種部件。

1.1.1 模型

模型部件是軟件所處理問題邏輯在獨(dú)立于外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,封裝了問題的核心數(shù)據(jù)、邏輯和功能的計(jì)算關(guān)系,它獨(dú)立于具體的界面表達(dá)和I/O操作。

1.1.2 視圖

視圖是把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示給用戶。它從模型獲得顯示信息,對(duì)于相同的信息可以有多個(gè)不同的顯示形式或視圖。

1.1.3 控制器

控制器是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對(duì)應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個(gè)視圖具有一個(gè)控制器。

1.2 MVC的結(jié)構(gòu)特點(diǎn)

在MVC中,模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。

2 Struts

Struts是一個(gè)完全遵照MVC模型設(shè)計(jì)的web層的框架,它很好的結(jié)合了Jsp、Java Servlet、Java Bean 和Taglib等技術(shù)。通過使用Struts框架可以改進(jìn)和提高Java Server Pages、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)在web應(yīng)用程序中的應(yīng)用。應(yīng)用Struts框架可以減少應(yīng)用MVC設(shè)計(jì)模式的開發(fā)時(shí)間,從而提高開發(fā)效率。

2.1 Struts 的體系結(jié)構(gòu)

Struts的體系結(jié)構(gòu)實(shí)現(xiàn)了MVC設(shè)計(jì)模式的概念,它將Model、View、Controller分別映射到Web應(yīng)用中的組件。Model由代表系統(tǒng)狀態(tài)和商業(yè)邏輯Action來構(gòu)建,View的顯示則由JSP頁面和表示組件來實(shí)現(xiàn), Controller部分的功能由ActionServlet和ActionMapping來完成。

2.2 Struts的工作原理

Struts的工作原理如圖1所示,在Struts中,ActionServlet起著一個(gè)控制器的作用。ActionServlet是一個(gè)通用的控制組件。這個(gè)控制組件提供了處理所有發(fā)送到Struts的HTTP請(qǐng)求的入口點(diǎn)。它截取和分發(fā)這些請(qǐng)求到相應(yīng)的動(dòng)作類。另外控制組件也負(fù)責(zé)用相應(yīng)的請(qǐng)求參數(shù)填充 Action Form,并傳給動(dòng)作類。動(dòng)作類實(shí)現(xiàn)核心商業(yè)邏輯,它可以訪問java bean 或調(diào)用EJB。所有這些控制邏輯利用Struts-config.xml文件來配置。Struts-config.xml是一個(gè)開發(fā)人員自己配置的xml文件,它記錄了每個(gè)不同的用戶請(qǐng)求與model之間的對(duì)應(yīng)關(guān)系??刂破魇盏秸?qǐng)求后就到這個(gè)xml文件中查找對(duì)應(yīng)的模型然后調(diào)用。

3 利用Struts框架開發(fā)MVC系統(tǒng)

某高級(jí)中學(xué)學(xué)校管理信息系統(tǒng)是一套對(duì)學(xué)校師生以及教學(xué)進(jìn)行管理的綜合性系統(tǒng),它的主要功能包括:

1) 教務(wù)管理

該系統(tǒng)可有效管理教學(xué)工作中的課程安排和教師授課內(nèi)容。

課程安排:可實(shí)現(xiàn)各年級(jí),各班次,各課程的全面管理。排課功能可有效協(xié)調(diào)教師、教室等資源。最終提供面向班次、教師、教室的課程表。

授課管理:實(shí)現(xiàn)教師教學(xué)計(jì)劃和備課管理,各教師可通過系統(tǒng)記錄備課內(nèi)容,也方便教學(xué)主管檢查工作。

2) 學(xué)生管理

該系統(tǒng)可實(shí)現(xiàn)學(xué)籍管理、班級(jí)學(xué)生出勤管理以及教師對(duì)學(xué)生的評(píng)價(jià)管理。學(xué)生管理不僅減輕了的數(shù)據(jù)錄入工作,更方便了信息查找,并可生成各類分析圖表,為學(xué)生管理工作提供決策數(shù)據(jù)。

學(xué)籍管理:包括學(xué)生報(bào)名錄入、學(xué)生畢業(yè)、異動(dòng)管理等。

出勤管理:可方便記錄每個(gè)學(xué)生的每日出勤情況。

評(píng)價(jià)管理:班主任和授課教師可方便的對(duì)學(xué)員作出評(píng)價(jià)。

3) 考試管理

該系統(tǒng)可實(shí)現(xiàn)題庫和試卷管理、考試管理和學(xué)生成績(jī)管理。

題庫和試卷管理:題目支持單選、多選、填空、判斷、問答等多種題型,可設(shè)定難度系數(shù)和相關(guān)知識(shí)點(diǎn)。教師可從中抽取試題生成試卷。

考試管理:授課教師可發(fā)起單科測(cè)試,試卷可從題庫中選取,可生成WORD格式打印試卷以傳統(tǒng)方式考試,亦可讓學(xué)生登錄系統(tǒng)進(jìn)行在線的網(wǎng)絡(luò)考試。授課教師可發(fā)起面向一個(gè)或多個(gè)班級(jí)的單科測(cè)試,而教學(xué)主管可發(fā)起一個(gè)年級(jí)或多個(gè)班級(jí)的統(tǒng)一考試。

學(xué)生成績(jī)管理:線下考試可由各任課教師分別錄入成績(jī),在線網(wǎng)絡(luò)考試可自動(dòng)統(tǒng)計(jì)成績(jī),系統(tǒng)可進(jìn)行總成績(jī)排名或單科成績(jī)排名以及分?jǐn)?shù)段統(tǒng)計(jì),系統(tǒng)支持總的分?jǐn)?shù)統(tǒng)計(jì)排名和按班級(jí)的分?jǐn)?shù)統(tǒng)計(jì)排名,還可生成每個(gè)學(xué)生成績(jī)變化曲線便于分析。

4) 總務(wù)管理

通過該系統(tǒng)的使用,繁雜的后勤和財(cái)務(wù)亦可實(shí)現(xiàn)輕松管理。

收費(fèi)管理:可建立多個(gè)收費(fèi)項(xiàng)目,進(jìn)行多次收費(fèi),并可統(tǒng)計(jì)各班級(jí)各學(xué)生的實(shí)際繳費(fèi)欠費(fèi)情況。

財(cái)務(wù)管理:采用適合大多數(shù)學(xué)校的流水帳方式記帳。學(xué)生收費(fèi)和工資發(fā)放等經(jīng)常性收支可自動(dòng)記入帳目。

教材管理:實(shí)現(xiàn)了教材的購進(jìn)管理和領(lǐng)用管理,同時(shí)管理教材的供應(yīng)商和進(jìn)貨價(jià)格。

住宿管理:管理各個(gè)宿舍樓和房間信息,有效協(xié)調(diào)學(xué)員住宿問題。

物品管理:管理物品檔案,記錄物品采購,物品發(fā)放或借出情況。

5) 系統(tǒng)管理

系統(tǒng)管理可為系統(tǒng)設(shè)置管理員,管理員可以維護(hù)整套系統(tǒng)。

用戶帳號(hào)管理:添加,刪除和修改系統(tǒng)管理員

管理員權(quán)限管理:設(shè)置管理員的各項(xiàng)權(quán)限,以控制不同的管理員操作不同的模塊。

由于Struts已經(jīng)提供了一個(gè)非常好的MVC框架,所以直接利用Struts開發(fā)這套系統(tǒng)可以大大加快開發(fā)的速度。

3.1 各部件開發(fā)

具體在使用Struts框架時(shí),因?yàn)樵赟truts中提供了Controller核心控制部分的實(shí)現(xiàn),開發(fā)者只需要配置ActionMapping對(duì)象。因此開發(fā)時(shí)的主要工作僅包括:Model部件的開發(fā),View部件的開發(fā)以及將其添加配置到struts-config.xml。下面介紹在某高級(jí)中學(xué)學(xué)校管理信息系統(tǒng)中,系統(tǒng)管理模塊的添加用戶功能是如何使用Struts來構(gòu)建的。

3.1.1 View部件——UserAdd.jsp

為了使用Model中的ActionForm 對(duì)象,我們必須用Struts提供的自定義標(biāo)記創(chuàng)建HTML 表單。利用Struts提供的自定義標(biāo)記庫編寫用戶界面把應(yīng)用邏輯和顯示邏輯分離。Struts框架通過這些自定義標(biāo)記建立了View和Model之間的聯(lián)系。Struts的自定義標(biāo)記還提供了很多定制頁面的功能。

用戶名:

密碼:

確認(rèn)密碼:

3.1.2 Model部件

1) UserForm

前述的JSP在提交之后,Struts 中的ActionServlet 接受請(qǐng)求并根據(jù)Struts-config.xml中的配置(見后文)找到此請(qǐng)求對(duì)應(yīng)的ActionForm(此例中為UserForm), 并將request中的參數(shù)按照名稱對(duì)應(yīng)的原則自動(dòng)注入到UserForm中相應(yīng)的屬性中。UserForm的定義如下:

public class UserForm{

private String userName;

private String password;

public String getUserName(){return this.userName};

public void setUserName(String userName){this.userName = userName};

public String getPassword(){return this.password};

public void setPassword(String password){this.password=password};

}

2) UserAddAction

ActionForm組裝之后ActionServlet再次根據(jù)Struts-config.xml中的配置將請(qǐng)求分發(fā)到UserAddAction。UserAddAction調(diào)用持久層的UserDAO中的addUser方法,將數(shù)據(jù)持久化到DB,最后此方法返回視圖名UserAddSuccess給控制器??刂破鞲鶕?jù)此名稱以及配置文件中的配置,找到相應(yīng)的視圖顯示給用戶。

public class UserAddAction extends Action {

public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {

UserForm userForm = (UserForm)actionForm;

UserDAO userDAO = new UserDAO();

userDAO.add(userForm);

return actionMapping.findForward(\"UserAddSuccess\");

}

}

3) UserDAO

持久層組件UserDAO負(fù)責(zé)將UserForm中的業(yè)務(wù)數(shù)據(jù)持久化到數(shù)據(jù)庫。

public class UserDAO extends DAOSupport{

public void addUser(UserForm userForm){

executeSQL(, userForm);

}

}

3.1.3 Struts-config.xml

name=”userForm”

path=\"/addUser\"

type=\"com.your.struts.action.UserAddAction\"

scope=\"request\"

input=\"/userAdd.jsp\" >

參考文獻(xiàn):

[1] 姚慧廣,趙岳松.Web編程中MVC模型的應(yīng)用[J].微機(jī)發(fā)展,2002(3):910.

[2] 陸榮幸,郁洲,阮永良.J2EE平臺(tái)上MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2003(3):144-146.

[3] 李赤林,王琳.Model View Controller設(shè)計(jì)模式實(shí)例研究[J].計(jì)算機(jī)與現(xiàn)代化,2003(3):12-18.

[4] 孫瑩,徐俊華,張毅,等.MVC編成模型在Web程序中的應(yīng)用及Java實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2001(17):160-163.

[5] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計(jì)與開發(fā)[M].北京:電子工業(yè)出版社,2004:274-275.

主站蜘蛛池模板: 亚洲天堂精品视频| 野花国产精品入口| 国产尤物视频在线| 狠狠v日韩v欧美v| 亚洲91精品视频| 国产理论一区| av天堂最新版在线| 国产午夜不卡| 一级毛片无毒不卡直接观看| 夜夜拍夜夜爽| 日本欧美一二三区色视频| 99热最新网址| 五月婷婷综合网| 亚洲国产精品日韩av专区| 免费精品一区二区h| 新SSS无码手机在线观看| 中国特黄美女一级视频| 热这里只有精品国产热门精品| 色视频久久| AV不卡在线永久免费观看| 久久国产精品国产自线拍| 91麻豆久久久| 国产国模一区二区三区四区| 久久精品国产亚洲AV忘忧草18| 九九九九热精品视频| 久久精品国产精品国产一区| 亚洲欧洲一区二区三区| 丝袜亚洲综合| 日韩精品一区二区三区大桥未久| 精品无码一区二区在线观看| 人妻无码AⅤ中文字| 亚洲人成亚洲精品| 免费高清毛片| 凹凸精品免费精品视频| 久草青青在线视频| 99久久免费精品特色大片| 国产精品第页| 中文字幕永久在线看| 特级做a爰片毛片免费69| 99热这里只有精品免费| 久久精品国产999大香线焦| 无码免费视频| 国产欧美又粗又猛又爽老| 亚洲国产精品久久久久秋霞影院| 色老二精品视频在线观看| 久久精品66| 专干老肥熟女视频网站| 奇米影视狠狠精品7777| 91丨九色丨首页在线播放| 久久综合一个色综合网| 一级毛片基地| 国产无人区一区二区三区| 亚洲中字无码AV电影在线观看| 91青青草视频在线观看的| 欧美人在线一区二区三区| 五月天久久综合国产一区二区| 国产一级二级三级毛片| 午夜人性色福利无码视频在线观看| 在线精品亚洲一区二区古装| 色哟哟国产精品| 狠狠五月天中文字幕| 精品自窥自偷在线看| 亚洲最黄视频| 波多野结衣在线se| 久久国产精品国产自线拍| 999在线免费视频| 亚洲天堂免费在线视频| 日韩精品资源| 亚洲成a人片在线观看88| 久热中文字幕在线观看| 免费人成网站在线高清| 亚洲天堂视频网站| 亚洲va视频| 国产精品伦视频观看免费| 试看120秒男女啪啪免费| 国产h视频免费观看| 日韩欧美中文字幕在线韩免费| 亚洲成a人在线观看| 国模粉嫩小泬视频在线观看| 国产精品页| 亚洲精品无码专区在线观看| 高清不卡一区二区三区香蕉|