Struts的安裝、配置與運行
|
| Java關鍵字導航 |
| 網絡 J2ME 手機游戲 JavaCard Struts 游戲 分析器 JAAS EJB JavaMail 設計模式 J2EE |
一、Struts的起源
Struts最早是作為Apache Jakarta項目的組成部分,項目的創立者希望通過對該項目的研究,改進和提高JavaServer Pages 、Servlet、標簽庫以及面向對象的技術水準。Struts這個名字來源于在建筑和舊式飛機中使用的支持金屬架。這個框架之所以叫"Struts",是為了提醒我們記住那些支撐我們房屋,建筑,橋梁,甚至我們踩高蹺時候的基礎支撐。這也是一個解釋Struts在開發Web應用程序中所扮演的角色的精彩描述。當建立一個物理建筑時,建筑工程師使用支柱為建筑的每一層提供支持。同樣,軟件工程師使用Struts為業務應用的每一層提供支持。它的目的是為了幫助我們減少在運用MVC設計模型來開發Web應用的時間。我們仍然需要學習和應用該架構,不過它將可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的優點來建立可擴展的應用,Struts是一個不錯的選擇。
早期Smalltalk 程序語言便采用了MVC(Model-View -Controller) 模式( Patterns ) 以增加程序代碼彈性,MVC模式將程序代碼整理切割為三部份,Model 部分是業務與應用領域( Business domain) 相關邏輯、管理狀態之對象,Controller 部分接收來自View 所輸入的資料并與Model 部分互動,是業務流程控制( Flow Control) 之處,View 部分則負責展現資料、接收使用者輸入資料。在Java 應用中,JFC/Swing、AWT、JSP 皆是可用作View 之技術規格,而JavaBean 與Enterprise JavaBean 規格則可用于Model 程序代碼,一旦應用程序以MVC 模式加以適當之分割,Model 部分程序代碼可在不同使用者接口外觀之應用程序中重復使用。
隨著JSP 與Servlet 技術大量應用于以Web 為基礎之應用程序,Java 開發人員群體認為應以較佳之模式以提升Web 應用程序之可維護性與重復使用性。早期JSP 規格書中曾列舉兩種可行之JSP 應用架構,分別為Model1 與Model 2。
在Model 1 架構中,JSP 直接處理Web 瀏覽器送來之請求( Request ),并輔以JavaBean 處理應用相關邏輯。Model 1 架構單純編寫比較容易,但在Model 1 中JSP 可能同時肩負View 與Controller 角色,兩類程序代碼有可能混雜而不易維護。而Model 2 中將Servlet 納入架構中扮演前端Controller 角色,將Web 瀏覽器送出之請求集中送至Servlet ,Servlet 可集中管理使用者登入、權限控制、多國語言轉換等前置處理,再視需求轉向給對應之JSP 處理。Model 2 中采用了較佳之MVC 模式,但增加了編寫復雜度。
Struts是Apache軟件基金下Jakarta項目的一部分。除Struts之外,還有其他成功的開源產品,包括Tomcat, Ant 和Velocity。2000 年Craig R. McClanahan 先生貢獻了他編寫的JSP Model 2 架構之Application Framework 原始程序代碼給Apache 基金會,成為Apache Jakarta 計劃Struts Framework 前身。
開始的代碼基礎從2000年5月開始開發,直到2001年6月,1.0版本發布。有30 多個開發者參與進來,并有數千人參與到討論組中。Struts 代碼基礎由一個志愿的Commnitter團隊來管理。到2002年,Struts 小組共有9個志愿Commnitter。
Struts框架的主要架構設計和開發者是Craig R.McClanahan。Craig 也是Tomcat 4的主要架構師,以及Java Web Services Developer Pack的主要架構師和實現者。他現在是Sun的JavaServer Faces (JSR-127) 以及J2EE平臺的Web層架構的規范領導。Craig R. McClanahan 先生是JCP ExpertGroup 成員之一,曾參與JSP 規格制定與Tomcat 4 之編寫,因此Struts Framework 廣受Java 開發人員群體所重視。Borland 自2002 年底開始于開發工具JBuilder 中支持Struts Framework。