Struts快速學習指南01(內部培訓教材)-大部分素材來自於《Programming Jakarta Struts》一書

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" />struts目錄結構

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中是具有特別意義的,列舉如下:

2-1. Struts1.1中用到的初始化參數

參數名

含義/默認值

config

以相對路徑的方式指明Struts應用程序的配置文件位置。如不設置,則默認值爲/WEB-INF/struts-config.xml

config/sub1

以相對路徑的方式指明子應用程序的配置文件位置,一般來說,很少用到子應用程序,在此不多描述。

debug

設置Servletdebug級別,控制日誌記錄的詳細程度。默認爲0,記錄相對最少的日誌信息。

detail

設置Digesterdebug級別,DigesterStruts框架所使用的用來解析xml配置文件的一個框架,通過該設置,可以查看不同詳細等級的解析日誌。默認爲0,記錄相對最少的日誌信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章