一直以來(lái)我們都說(shuō)Struts是一個(gè)Web Framework。那么讓我么先來(lái)看看什么是Framework。
Framework概念并不是很新了,伴隨著軟件開(kāi)發(fā)的發(fā)展,在多層的軟件開(kāi)發(fā)項(xiàng)目中,可重用、易擴(kuò)展的,而且是經(jīng)過(guò)良好測(cè)試的軟件組件,越來(lái)越為人們所青睞。這意味著人們可以將充裕的時(shí)間用來(lái)分析、構(gòu)建業(yè)務(wù)邏輯的應(yīng)用上,而非繁雜的代碼工程。于是人們將相同類型問(wèn)題的解決途徑進(jìn)行抽象,抽取成一個(gè)應(yīng)用框架。這也就是我們所說(shuō)的Framework。
Framework的體系提供了一套明確機(jī)制,從而讓開(kāi)發(fā)人員很容易的擴(kuò)展和控制整個(gè)Framework開(kāi)發(fā)上的結(jié)構(gòu)。 通常,Framework的結(jié)構(gòu)中都有一個(gè)“命令和控制”組件("command and control" component)——Framework Factory and Manager。
習(xí)筆記/pic/framework.gif)
Framework體系
通過(guò)基于請(qǐng)求響應(yīng)(Request-Response)模式的應(yīng)用Framework,基本上有如下幾個(gè)表現(xiàn)邏輯結(jié)構(gòu)組成。
控制器(Controller)——控制整個(gè)Framework中各個(gè)組件的協(xié)調(diào)工作。
業(yè)務(wù)邏輯層(Business Logic)——對(duì)Framwork本身來(lái)說(shuō),這里僅僅只是概念和幾個(gè)提夠服務(wù)的基礎(chǔ)組件,真正的實(shí)現(xiàn)與客戶的業(yè)務(wù)邏輯接軌,還需要開(kāi)發(fā)人員在Framework上再次擴(kuò)展。
數(shù)據(jù)邏輯層(Data Logic)——絕大應(yīng)用系統(tǒng)都需要涉及到數(shù)據(jù)交互,這一層次主要包括了數(shù)據(jù)邏輯和數(shù)據(jù)訪問(wèn)接口。對(duì)于數(shù)據(jù)邏輯來(lái)說(shuō),如果你了解數(shù)據(jù)建模(Data Modeling)可能就很容易理解。
Struts有一組相互協(xié)作的類、Serlvet以及Jsp TagLib組成?;?/SPAN>Struts構(gòu)架的web應(yīng)用程序基本上符合JSP Model2的設(shè)計(jì)標(biāo)準(zhǔn),可以說(shuō)是MVC設(shè)計(jì)模式的一種變化類型。根據(jù)上面對(duì)framework的描述,我們很容易理解為什么說(shuō)Struts是一個(gè)web framwork,而不僅僅是一些標(biāo)記庫(kù)的組合。但 Struts 也包含了豐富的標(biāo)記庫(kù)和獨(dú)立于該框架工作的實(shí)用程序類。
Struts有其自己的控制器(Controller),同時(shí)整合了其他的一些技術(shù)去實(shí)現(xiàn)模型層(Model)和視圖層(View)。在模型層,Struts可以很容易的與數(shù)據(jù)訪問(wèn)技術(shù)相結(jié)合,包括EJB,JDBC和Object Relation Bridge。在視圖層,Struts能夠與JSP, Velocity Templates,XSL等等這些表示層組件想結(jié)合。
Struts的與Web App的關(guān)系
既然struts叫做web framework,那么其肯定主要基于web層的應(yīng)用系統(tǒng)開(kāi)發(fā)。按照J2EE Architecture的標(biāo)準(zhǔn),struts應(yīng)當(dāng)和jsp/servlet一樣,存在于web container一層。
習(xí)筆記\pic\webapp.gif)
posted on 2006-03-05 11:24
★yesjoy★ 閱讀(323)
評(píng)論(0) 編輯 收藏 所屬分類:
Structs學(xué)習(xí)