1. 程式人生 > >介紹一下Struts的ActionServlet類

介紹一下Struts的ActionServlet類

ActionServlet繼承自javax.servlet.http.HttpServlet類,其在Struts.framework中扮演的角色是中心控制器。它提供一箇中心位置來處理全部的終端請求。控制器ActionServlet主要負責將HTTP的客戶端請求資訊組裝後,根據配置檔案的制定描述,轉發到適當的處理器。

按照Servlet的標準,所有的Servlet必須在web配置檔案(web.xml)宣告。同樣,ActionServlet必須在WebApplication配置檔案(web.xml)中描述,有關配置資訊如下。

<servlet>
   <servlet-name>action</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>

全部的請求URL以*.do的模式存在並對映到這個servlet,其配置如下:
<servlet-mapping>
   <servlet-name>action</servlet-name>
   <url-pattern>*.do</url-pattern>
</servlet-mapping>

一個該模式的請求url符合如下格式

http://www.my_site_name.com/mycontext/actionName.do

中心控制器為所有的表示層請求提供了一個集中的訪問點。這個控制器提供的抽象概念減輕了開發者建立公共應用系統服務的困難,如管理檢視、會話及表單資料。它也提供一個通用機制如錯誤及異常處理,導航,國際化,資料驗證,資料轉換等。

當用戶向伺服器端提交請求的時候,實際上資訊是首先發送到控制器ActionServlet,一旦控制器獲得了請求,其就會將請求資訊傳交給一些輔助類(help classes)處理。這些輔助類知道如何去處理與請求資訊所對應的業務操作。在struts中,這個輔助類就是org.apache.struts.action.Action。通常開發者需要自己繼承Action類,從而實現自己的Action例項。