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

基于MVC設計模式Struts框架的應用方法

2009-01-20 01:55:54王雅軒
計算機教育 2009年24期

頊 聰 王雅軒

摘要:Struts 是當前應用開發中最為流行的框架之一。它提供一個非常好的MVC框架,在Web應用開發中把界面和業務邏輯分離,提高了代碼的可重用性和靈活性,便于組件式開發。文章簡要介紹MVC設計模式和Struts框架的體系結構和工作原理,然后結合一個實例,講述Struts實現MVC模式Web應用的過程。

關鍵詞:MVC模式;Struts;Web應用

中圖分類號:G642 文獻標識碼:A

傳統的Web應用開發工具(ASP、JSP)將頁面顯示、商業邏輯和數據處理大部分都集中在頁面代碼中,Web應用擴展維護比較困難,在大型Web應用開發中愈發顯得力不從心。MVC設計模式將頁面顯示、商業邏輯和數據處理相分離,最大限度地降低系統各部分之間的耦合性,提高代碼重用率,易于分工協作。而Struts是一個為開發基于MVC模式的應用架構的開源框架。

1MVC設計模式

MVC設計模式是一種著名的用戶界面軟件開發設計模式,它是模型-視圖-控制器(Model-View-Controller)縮寫。在MVC設計模式中,它把應用程序分成了3個核心部分,原理如圖1所示。

(1) 模型(Model)。模型封裝了用戶數據和處理數據的業務邏輯,體現了應用程序的當前狀態,而且可以將用戶數據狀態的變化提供給多個顯示該數據的視圖共用。

(2) 視圖(View)。視圖提供了用戶界面,是用戶和應用程序的交互的窗口,既接受用戶輸入,也把模型數據狀態顯示給用戶,但是視圖不負責任何業務邏輯處理,僅僅是將用戶輸入數據傳遞給控制器或將模型數據顯示給用戶。

(3) 控制器(Controller)??刂破鬟B接了模型和視圖,根據用戶請求判斷將請求交給哪個模型來完成,然后調用視圖來顯示模型處理后的用戶請求結果。

MVC設計模式將應用程序進行了分層,提高了軟件的可擴展性、可維護性。

2Struts框架

Struts框架繼承了MVC設計模式的特性,是J2EE體系架構的一種輕量級實現。其工作原理如圖2所示:

(1) 控制器的實現。Struts框架中采用了ActionServlet和Action類以及Struts-config.xml配置文件作為控制器的實現。其中,Struts-config.xml配置文件配置了不同用戶請求及對應的具體業務邏輯組件來供ActionServlet類查詢。ActionServlet類是中心Servlet,負責處理所有的用戶請求。當用戶提出請求,ActionServlet類最先對請求進行處理,它將根據Struts-config.xml配置文件將用戶請求映射到具體的Action類;而當Action類調用模型組件處理好用戶請求,并返回了處理結果后,仍然由ActionServlet類根據Struts-config.xml配置文件將結果轉發到視圖提供給用戶,或者轉發另外一個Action做進一步處理。Action類實現了具體的業務邏輯,它接受用戶的輸入,然后調用具體的模型組件來完成用戶請求。

(2) 視圖的實現。Struts構架主要采用了JSP作為視圖的實現,它提供了豐富的JSP標簽庫支持應用程序的開發,而且引入了ActionForm組件(實質為JavaBean)作為用戶表單的封裝來完成數據的傳輸。

(3) 模型的實現。Struts框架對模型——即復雜的數據持久化層沒有提供太多的支持,但是這也就是說開發人員有更多自由來選擇合適量級的持久化技術,比如Hibernate、EJB等。

3Struts工作流程

對于采用Struts 框架的Web應用,其具體工作流程如下:

(1) 客戶端通過本地瀏覽器向服務器發出一個請求;

(2) 控制器接收請求,找到對應的Action;

(3) Action類執行建立在模型組件基礎上的業務邏輯;

(4) 一旦Action類處理完業務邏輯,它把控制權返回給ActionServlet;

(5) 當ActionServlet把Action類的處理結果傳送到指定的視圖中。

4Web開發中的應用

以一個Web考試系統中的考生注冊子系統為例,說明Struts 在Web程序開發中的應用。考生在注冊頁面上輸入考生名、密碼等相關信息,若注冊成功,控制將轉向一個顯示注冊成功的頁面,否則控制將轉向一個顯示失敗的頁面。具體步驟如下:

(1) 項目建立。

(2) 實現視圖功能的用戶界面的設計。Struts中,JSP 頁面中利用Struts框架提供的taglib 標記庫的標記能夠大大提高開發效率。在該系統中,其注冊頁面reguserinfo.jsp 概要如下:

//引用Struts bean 標記

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

UserName:

Password:

(3) 實現模型功能的組件設計。模型部分包含了應用程序的業務邏輯。

① 系統狀態組件(FormBean),即實體模型類,它繼承自ActionForm類,用來存放表單數據,與注冊頁面的表單對應的數據Bean如下:

…;

public class UserForm extends ActionForm{

public String getUserID(){return userID;}

public void setUserID(String userID)

{this.userld= userID;}

}

② 指令類組件(ActionBean),它擴展了Action 類,主要是用來控制應用程序的流程,當注冊考生按“Submit”按鈕后,來自用戶的請求被Servlet 送到指令類組件RegUserAction,指令類調用相應的業務邏輯進行處理,然后把請求轉發給相關的JSP,其程序概要為:

…;

public class RegUserAction extends Action

{

public ActionForward perform(ActionMapping

mapping, ActionForm form, HttpServletRequest

req, HttpServletResponse response) {

//獲取注冊信息,并據此做相應操作

}

}

(4) 實現控制器功能的指令。控制器類ActionServlet的核心是Struts-config.xml 配置文件,它包含了應用程序的整個邏輯流程。在考生注冊信息過程中,用reguserinfo.jsp實現注冊頁面;用UserForm(擴展了ActionForm)封裝了表單數據;用RegUserAction實現了考生注冊信息并控制了應用程序流程;而在Struts-config.xml 配置文件里實現了注冊頁面(reguserinfo.jsp)、數據Bean(UserForm)、邏輯Bean(RegUserAction)之間的聯系,其配置信息為:

name="userForm"scope="request">

當在注冊頁面上單擊“Submit”按鈕時,考生請求被提交給ActionServlet, ActionServlet 根據Struts-config.xml 中的配置信息,把/reguser.do 的URL映射到RegUserAction,把考生注冊信息封裝到UserForm,由RegUserAction 完成

注冊操作,然后轉發給“/regsuccess.jsp”。

(5) 系統運行。 完成整個系統的功能實現。

5總結

Struts體系框架自從2001年7月發布了1.0版之后,已經越來越得到Java開發者的支持,實踐證明,Struts體系框架的確是一個優秀的框架,大大縮短了Java Web應用程序的開發周期,提高了系統開發效率。

參考文獻:

[1] 孫衛琴. 精通Struts:基于MVC的JavaWeb設計與開發[M]. 北京:電子工業出版 ,2004.

[2] 閻宏. Java與模式[M].北京:電子工業出版社,2002.

[3] Ted Husteel, Cedric Dumoulin, David Wiwerfeldt, et al.《Struts in Action》[M]. ManningPublication co.2001.

Application Methods of Struts Framework Based on MVC Designed Pattern

XU Cong, WANG Ya-xuan

(Software College, Dalian University of Foreign Language, Dalian 116044, China)

Abstract: Struts is one of the most popular frameworks for Web applications and developments nowadays. It brings a very good MVC framework and separate interface and business logic. It aided in the code reusability and flexibility for components developments. This paper briefly introduces MVC(Model/View/Controller)designing mode and the Struts framework. An example is given to illustrate how to design web application of MVC patterns using Struts.

Key words: MVC pattern; Struts; Web application

主站蜘蛛池模板: 欧美A级V片在线观看| 亚洲欧美日韩成人在线| 538国产视频| 国产成年无码AⅤ片在线 | 久久无码高潮喷水| 亚洲人成网站日本片| 97se亚洲| 国内99精品激情视频精品| 色婷婷综合激情视频免费看| 国产农村精品一级毛片视频| 亚洲AV色香蕉一区二区| 亚洲 欧美 日韩综合一区| 欧美日韩午夜| 亚洲第一区在线| 日本精品αv中文字幕| 麻豆a级片| 亚洲天堂久久久| 久久精品最新免费国产成人| 国产系列在线| 91精品伊人久久大香线蕉| 亚洲第一色网站| 任我操在线视频| 成人午夜亚洲影视在线观看| 亚洲视频免| 国内精品久久久久鸭| 国产精品网拍在线| 亚洲黄网在线| 伊人久久精品无码麻豆精品| 国产伦精品一区二区三区视频优播| 国产精品女人呻吟在线观看| 亚洲乱码在线视频| 亚洲男人天堂2020| 亚洲欧美日韩色图| 狠狠五月天中文字幕| 久久国产精品国产自线拍| 欧美激情综合| 性做久久久久久久免费看| 99久视频| 国产区精品高清在线观看| 午夜不卡视频| 亚洲最黄视频| 日韩av高清无码一区二区三区| 色久综合在线| 婷婷综合色| 日韩午夜片| 亚洲精品无码日韩国产不卡| 精品超清无码视频在线观看| 欧美啪啪视频免码| 思思热精品在线8| 中文字幕亚洲电影| 91国内在线观看| 无码粉嫩虎白一线天在线观看| 毛片视频网址| 91亚洲精品国产自在现线| 欧美在线免费| 99久久99视频| 在线精品自拍| 国产精品亚洲精品爽爽| 一本大道AV人久久综合| 精品一区二区三区波多野结衣| 国产毛片高清一级国语 | 手机成人午夜在线视频| 亚洲综合在线网| 欧美一区日韩一区中文字幕页| 亚洲精品无码抽插日韩| 日本亚洲成高清一区二区三区| 欧美色视频网站| 久久亚洲高清国产| 亚洲二区视频| 福利片91| 亚洲精品国产精品乱码不卞| 国产呦精品一区二区三区下载| www.国产福利| 色综合天天娱乐综合网| 嫩草在线视频| www.国产福利| 国产真实乱子伦视频播放| 日本不卡在线视频| a级毛片视频免费观看| 久久99精品国产麻豆宅宅| 97精品伊人久久大香线蕉| 国产一区二区视频在线|