乙個請求在struts2框架中的處理大概分為以下幾個步驟:
1、客戶端通過httpservletrequest初始化乙個指向servlet容器(例如tomcat)的請求;
2、這個請求經過一系列的過濾器(filter)(這些過濾器中有乙個叫做actioncontextcleanup的可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助,例如:sitemesh plugin);
3、接著會被核心過濾器filterdispatcher(2.1.3版本開始,核心過濾器就變成了strutsprepareandexecutefilter
把請求的處理控制權交給actionproxy(**);
5、actionproxy通過configuration manager來載入框架的配置檔案struts.xml,找到需要呼叫的action類;
6、然後,actionproxy會建立乙個actioninvocation的例項。
7、actioninvocation例項在呼叫action的過程前,會依次呼叫相關***(interceptor);
逆序呼叫
相關***(interceptor);
(因為***是乙個套乙個的,action在最後乙個***裡面才呼叫)
9、伺服器通過httpservletresponse響應客戶端的請求;
struts 2框架的開發步驟:
匯入struts 2框架所需要jar包;
在web.xml檔案中定義核心過濾器為struts 2,這樣才可以讓框架介入web應用中;
如果需要以post方式提交使用者請求,則需要定義包含表單資料的jsp頁面,如果僅僅只是以get方式傳送請求,則無須經過這一步;
定義處理使用者請求的action類;
在struts.xml檔案中配置action,就是指定哪個請求對應哪個action進行處理,從而讓核心控制器根據該配置來建立合適的action例項,並呼叫該action的業務控制方法;
配置處理結果和物理檢視資源之間的對應關係;
編寫檢視資源,也就是前台頁面檔案,一般是jsp頁面。
舉例:
hellostruts2" class="com.imooc.action.hellostruts2action">
/result.jsp
/index.jsp
上面的配置片段指定如果使用者請求url為hellostruts2,則使用com.imooc.action.hellostruts2action類來處理,如果處理方法返回值為「success」,則跳轉到result.jsp頁面;
如果處理方法返回值為「error」,則跳轉到index.jsp頁面;
struts2.5.5版本有一些變化的地方,我發現了幾處,大家可以了解一下:
Struts2驗證框架
action配置中一定要設定input返回頁面 新增驗證只要建立驗證的xml檔案 在action同包下,建立 action類名 validation.xml 如 validateaction建立validateaction validation.xml 注意 1.要驗證的方法不能叫input.2.這...
struts2 驗證框架
驗證框架 validate 第一種方式 繼承actionsupport類重寫validate 方法 表示提交到此action所有請求都會執行驗證。eg public classloginaction extendsactionsupport publicstring execute override...
struts2框架校驗
struts2框架校驗執行的先後順序 a 首先執行校驗框架 xml檔案 b 執行自定義方法的校驗方法 validatemyexecute c 執行validate方法。1.框架校驗的參考檔案 a com xwork xwork validator 1.0.2.dtd 校驗器檔案xx validati...