ApacheStruts
Struts是 Apache 軟體基金會(ASF)贊助的一个開源項目。伊上頭仔是 Jakarta 項目中的一个子項目,並且佇二空空四年三月成做 ASF 的頂級項目。伊通過採用 Java Servlet/JSP 技術,實現了基於 Java EE Web 應用的 Model-View-Controller(MVC)設計模式的應用框殼,是 MVC 經典設計模式內底的一个經典產品。
MVC 結構
佇咧 Struts 中,已經是由一个名為 _ ActionServlet _ 的 Servlet 充當控制器(Controller)的角色,根據描述模型、視圖、控制器對應關係的 _ struts-config . xml _ 的配置文件,轉發視圖(View)的請求,組裝響應數據模型(Model)。 佇咧 MVC 的模型(Model)部份,定定畫分做兩个主要的子系統(_ 系統的內部數據狀態 _ 佮 _ 改變數據狀態的邏輯動作 _), 這兩个概念子系統分別具體對應 Struts 內底的 _ ActionForm _ 佮 _ Action _ 兩个需要繼承實現超類。佇遮,Struts 會當佮各種標準的數據訪問技術結合做伙,包括講 Enterprise Java Beans(EJB), JDBC 佮 JNDI。佇咧 Struts 的視圖(View)捀,除了使用標準的 JavaServer Pages(JSP)以外,閣提供大量的標籤庫來使用,同時嘛會當佮其他的表現層組件的技術(產品)進行整合,比如講 Velocity Templates,XSLT 等。通過應用 Struts 的框殼,最終用戶會當共大部份的關注點囥佇咧家己的業務邏輯(_ Action _)佮映射關係的配置文件(_ struts-config . xml _)中。
發展歷程
佇咧 Java EE 的 Web 應用發展的初期,除了使用 Servlet 技術以外,普遍是咧 JavaServer Pages(JSP)的原始碼中,採用 HTML 佮 Java 代碼混合的方式進行開發。因為這兩種方式袂當避免的愛共表現佮業務邏輯代碼透濫做伙,攏予前期開發佮後期維護帶來誠大的複雜度。為著欲擺脫喝的約束和局限,共業務邏輯代碼對表現層中清楚度的分離出來,二空空空年,Craig McClanahan 採用矣 MVC 的設計模式開發 Struts。尾仔該框架產品一度予人認為是上廣泛、上時行 JAVA 的 WEB 應用框殼。
二空空六年,WebWork 佮 Struts 的 Java EE Web 框架的團體,決定合作共同開發一个新的,整合矣 WebWork 佮 Struts 優點,並且閣較優雅、擴展性閣較強的框殼,號名號做「Struts 二」,原 Struts 的一 . x 版本的產品叫做「Struts 一」。 Struts 項目並且提供佮維護兩个主要版本的框殼產品—— Struts 一佮 Struts 二。
佇二空空八年十二月,Struts 發佈了上尾仔一个正式版(一孵三 . 十), 二空一三年四月初五,Struts 開發組宣布終止矣 Struts 一的軟體開發周期。
優缺點
Struts 的優點主要集中體這馬兩个方面,Taglib 佮頁面導航。Taglib 是 Struts 的標記庫,靈活動用,能大大提懸開發效率。
Struts 這个名來源於佇咧建築佮舊式飛機中使用的支持金屬架仔。伊的目的是為著欲減少咧運用 MVC 設計模型來開發 Web 應用的時間。你猶原需要學習佮應用應該架構,猶毋過伊會當完成其中一寡繁重的工課。Struts 佮 Tomcat、Turbine 等諸多 Apache 項目仝款,是開源軟體,這是伊的一大優點,使開發者會當閣較深入了解其內部實現機制。
Struts 二的空縫處理機制捷予顧頭雞仔病,一來 OGNL 的功能強大佮請求處理機制真好產生遠程執行問題,二來開發組對空縫處理能力不足,欲按怎修復了後猶原會當踅過,欲哪會無法度修復咧長期閒置處理。
參考文獻
外部連結
- 官方網站
參見
- Struts 二
- MVC 設計模式
- Apache 軟體基金會
- J 二 EE