摘要:Struts是目前Java Web應用領域使用最廣泛的框架。Struts框架實現了業務層、視圖層和控制器層的分離。從而達到提高開發效率,便利后期維護的目的。本文介紹了MVC和Struts的設計思想,闡明了Struts框架的優點。
關鍵詞:Struts;MVC;Web應用
中圖分類號:TP393
文獻標識碼:B
文章編號:1002-2422(2010)06-0117-02
目前在Java Web開發領域普遍采用基于JavaEE規范所要求的分層開發架構,基于MVC模式的Struts就是一個成功的Web應用框架。MVC設計模式是將頁面顯示、商業邏輯和數據處理相分離,最大限度地降低系統各部分之間的耦合性,可以大大加快開發進度,降低開發難度,而基于MVC模式的Struts框架能夠很好地將面向對象的設計和用戶接口分開,從而大大方便代碼的修改。使得應用程序可以方便地擴展框架,更好地適應用戶的實際需求。
1 MVC設計模式的思想
設計模式這一概念源于建筑學領域,目的是為重復出現的問題提供一種最佳解決方案。MVC模式最早出現在桌面的應用程序中,后被引入到Web開發中,因此也將基于Web的MVC模式稱之為MVC 2。是把一個應用任務的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,同時各個模塊之間相互獨立,提高了靈活性和可重用性。MVC的核心是實現三層甚至多層的松散禍合,將應用程序抽象為三個部分,三者既分工又合作地完成用戶提交的每項任務。
(1)視圖層:主要包括與用戶交互的界面,即應用程序的外觀。首先,視圖模塊將用戶的請求傳遞給應用程序,觸發應用程序對用戶請求的處理邏輯;其次,視圖模塊將應用程序對用戶請求的處理結果返回給用戶。
(2)模型層:模型將應用程序的數據結構與業務邏輯封裝起來。特定的模型用于完成特定業務,其中封裝了應用問題的核心數據、邏輯關系和業務規則,提供了完成問題處理的操作過程。
(3)控制器層:控制器根據客戶端發送的請求調用相應的模型完成數據處理,并根據處理結果調用相應的視圖進行封裝。控制器管理整個應用的業務流程,是應用程序的控制中心。
2 Struts框架工作流程
MVC可以減少業務邏輯接口和數據接口之間的耦合,讓視圖層更富于變化。結合Struts的體系結構,得到Struts應用的一般工作流程:
首先由ActionServlet將request轉發給RequestProcessor來處理。RequestProcessor根據提交過來的消息通過查找ActionMapping中得到相應信息。然后將request的參數對應到ActionForm中進行驗證再執行Action。
HTML中Form的信息被封裝在ActionForm類中。Ac-tionForm中所有的屬性都滿足get和set的相關對應。當驗證Form時一旦發生錯誤,則會通過ActionErrors類將頁面導向錯誤提示頁面。所以AcfionForm是在Model、View之間傳遞信息的工具。Action是一個用于執行業務邏輯的Back-end Controller,每個Action都只建立一個instance,而且在Struts中提供了多種Ac~on供選擇使用。可以看出以上這些類都是控制器的重要組成部分。
而頁面顯示則主要依賴JSP技術。為了使視圖界面的開發更加容易,Struts提供了一整套與Model組件交互的JSP自定義的標簽庫,在這個標簽庫的支持下可以使開發過程更加簡單。
3 Struts在Web應用中優點
Struts作為一個成熟的框架擁有其優點首先是實現了MVC模式,結構清晰,開發者只需要關注業務邏輯的實現便可以使用。其次是豐富的標簽庫能大大提高開發效率。而頁面導航的使用也使得整個系統的脈絡更加清晰,其中配置文件的使用對于后期維護有很大好處,尤其是更換開發者的時候,這個優勢會更加明顯。
4 結束語
Struts框架在提高系統開發效率,增加代碼復用效率,增強系統可維護性,縮短系統開發時間等方面都有很好的表現。而且采用Struts框架實現MVC設計模式充分利用了java的強大功能和平臺無關性的特點。Struts可以說是所有軟件工程師手中的利器。
參考文獻
[1]王力生,沈駿.STRUTS框架應用中Web服務擴展模型的研究[J].北京:微型機與應用,2004(10):13-15.
[2]吳寅斐,何欽銘,吳大瑞.Struts分析及其應用研究[J].上海:計算機工程,2006(16).
[3]周寶剛,劉杰,李成.基于Struts的WEB頁面構建系統[J].合肥:電腦知識與技術,2008(4):695-698.