1. Struts簡介
Struts 是一個技術框架,由Craig R. McClanahan編寫,並且在2000年的時候捐獻給了ASF,目前,有很多組織和個人參與Struts框架的開發,使得Struts保持高速成長,同時,利用Struts開發的應用越來越多,使其成爲web應用MVC模式中VC部分事實上的標準。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.1 Web技術歷史
1.1.1 CGI
web應用開發中歷史上,CGI(common gateway interface)是最早使用的一種技術,通過爲不同的平臺,不同的web server編寫插件編寫應用接口,來滿足通過web方式編寫應用的需求。當時流行的方式包含NSAPI/ISAPI,使用Perl來編寫CGI程序。CGI最大的問題就是線程併發的問題,當時給很多人的感覺是CGI訪問速度慢,其主要原因是應用程序所編寫的CGI沒有考慮多線程。
1.1.2 Servlet
作爲一種跨平臺語言的服務器端技術,其一經產生就備受矚目,採用Servlet開發的應用,不用考慮平臺,多線程等讓人頭疼的問題,使得開發人員專注於業務邏輯的實現,大大解放了生產力。但是,在Servlet中嵌入html無疑是開發人員的噩夢,與同時期微軟的ASP相比,Servlet在開發效率方面讓人不敢恭維。
1.1.3 Java Server Pages
JSP從很大程度上時參考了ASP的想法,使得采用Java語言開發服務器端應用非常容易,同時因爲java與生俱來的跨平臺、安全性、易用性優勢,當然,還有開發人員的高工資J,使得JSP逐漸在Web服務器端應用開發中佔據了主流位置。
2. Struts安裝
Struts作爲一個J2EE 框架,很容易和你的web應用結合起來,你僅僅需要作以下幾個步驟:
1、 下在Struts1.1 二進制壓縮包,將壓縮包解壓到%STRUTS_HOME%目錄,目錄結構如下如示:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
2、 建立你的標準web應用程序,所謂標準應用程序是指在web應用程序的根目錄下有一個WEB-INFO目錄,WEB-INF下有classes,lib目錄,classes下面有個web.xml文件。本文後續假設你的web應用在%WEB_ROOT%目錄下。
3、 將%STRUTS_HOME%/lib下所有文件copy到%WEB_ROOT%/WEB-INF/lib下。
4、 配置%WEB_ROOT%/WEB-INF/classes/web.xml以滿足Struts需要,具體如下:
1、 在配置文件中映射ActionServlet,ActionServlet用於接受所有訪問者的請求。在Struts應用中,所有對應用程序的請求,都會被WEB SERVER定向到ActionServlet進行統一控制、分配處理,ActionServlet可以看作是Struts框架的核心,樞紐。 <web-app> <servlet> <servlet-name>controller</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> </servlet> </web-app>
2、 配置servlet映射,通過servlet映射可以將用戶訪問web應用的擴展名映射到具體處理的servlet,例如,將所有以.do爲擴展名的頁面的請求交給ActionServlet處理。 <web-app> <servlet> <servlet-name>controller</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>controller</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> 另外,也可以採用如下方式進行映射,該方式將所有對/action/目錄下文件的訪問請求交給ActionServlet處理。 <web-app> <servlet> <servlet-name> controller </servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>controller</servlet-name> <url-pattern>>/action/*</url-pattern> </servlet-mapping> </web-app>
3、 配置ActionServlet的初始化參數,Struts1.1有一些指定的初始化參數,用於指明Struts應用所需要的配置文件,debug等級等。 <web-app> <servlet> <servlet-name>controller</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>host</param-name> <param-value>localhost</param-value> </init-param> <init-param> <param-name>port</param-name> <param-value>7001</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name> controller </servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app> 初始化參數利用<init-param>進行配置,配置採用名稱-值對的方式,一個<param-name>對應一個<param-value>,初始化參數可以任意定義,例如host,port,但是有一些在Struts1.1中是具有特別意義的,列舉如下:
|