麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

淺析Struts 體系結構與工作原理(3)

2019-11-18 13:47:55
字體:
來源:轉載
供稿:網友

  淺析Struts 體系結構與工作原理(3)

從struts的組件來看Struts 的工作原理

   對于Struts 如何控制、處理客戶請求,讓我們通過對struts的四個核心組件介紹來具體說明。這四個組件就是:ActionServlet、Action Classes,Action Mapping以及ActionFrom Bean。

   1) Struts ActionServlet

   ActionServlet繼續自javax.servlet.http.HttpServlet類,其在Struts 體系結構中扮演的角色失控制器,控制器ActionServlet主要負責將HTTP的客戶請求信息組裝后,根據配置文件的指定描述,轉發到適當的處理器。

   按照Servelt的標準,所有得Servlet必須在web配置文件(web.xml)聲明。同樣,ActoinServlet必須在Web application配置文件(web.xml)中描述。

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

   2) Struts Action Classes

   一個Action 類的角色,就像客戶請求動作和業務邏輯處理之間的一個適配器(Adaptor),其功能就是將請求與業務邏輯分開。這樣的分離,使得客戶請求和Action類之間可以有多個點對點的映射。而且Action類通常還提供了其它的輔助功能,比如:認證(authorization)、日志(logging)和數據驗證(validation)。

   3) Struts ActionMapping

   將特定請求映射到特定Action的相關信息存儲在ActionMapping中,ActionServelt將ActionMapping傳送到Action類的perform()方法,Action將使用ActionMapping的findForward()方法,此方法返回一個指定名稱的ActionForward,這樣Action就完成了本地轉發。若沒有找到具體的ActionForward,就返回一個null。

   4) Struts ActionForm Bean

   一個應用系統的消息轉移(或者說狀態轉移)的非持久性數據存儲,是由ActionForm Bean的負責保持的。

   ActionForm的主要功能就是為Action的操作提供與客戶表單相映射的數據(假如在客戶指定的情況下,還包括對數據進行校驗)。Action負責對系統數據狀態的保持,而Action則負責根據業務邏輯的需要,對數據狀態進行修改,在改變系統狀態后,ActionForm則自動的回寫新的數據狀態并保持。

   在ActionForm的使用中,Struts提倡使用到值對象。這樣將客戶或開發人員,對數據狀態與對象狀態能夠更加清楚的理解和使用。

   對于每一個客戶請求,Struts 體系結構在處理ActionForm的時候,一般需要經歷如下幾個步驟:

   ① 檢查Action的映射,確定Action中已經配置了對ActionForm的映射;

   ② 根據name屬性,查找form bean的配置信息;

   ③ 檢查Action的formbean的使用范圍,確定在此范圍下,是否已經有此form bean的實例;

   ④假如當前范圍下,已經存在了此form bean的實例,而是對當前請求來說,是同一種類型的話,那么就重用;

   ⑤ 否則,就重新構建一個form bean的實例;

   ⑥form bean的reset()方法備調用;

   ⑦ 調用對應的setter方法,對狀態屬性賦值;

   ⑧ 假如validatede的屬性北設置為true,那么就調用form bean的validate()方法。

   假如validate()方法沒有返回任何錯誤,控制器將ActionForm作為參數,傳給Action實例的execute()方法并執行。 (全文完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国内精品久久久久久久星辰影视 | 亚洲精品无码不卡在线播放he | 毛片视频免费播放 | 免费香蕉成视频成人网 | 国产papa| 中文字幕爱爱视频 | 精品一区二区三区四区在线 | 日本综合久久 | av免费在线观看不卡 | xxxxhd73国产 | 逼片视频| 欧美性受xxxx人人本视频 | 日韩午夜一区二区三区 | 午夜精品视频在线 | av在线免费观看网 | 久久久久久久国产视频 | 羞羞的视频 | 亚洲一区二区三区视频 | 91美女啪啪 | 久久精品re| 日韩一级视频 | 俄罗斯hdxxx| 久草视频国产在线 | 久久亚洲精品国产一区 | 国产精品久久99精品毛片三a | 欧美成在人线a免费 | 女人解衣喂奶电影 | 一级毛片在线观看免费 | 成人午夜免费看 | 国产精品久久久久影院老司 | 九九热九九 | 男女羞羞视频在线观看免费 | 夜添久久精品亚洲国产精品 | 视频在线亚洲 | 97中文| 精品一区二区三区在线观看国产 | 毛片免费视频观看 | 免费看性xxx高清视频自由 | 性看小视频 | 久久久久亚洲视频 | 国产无区一区二区三麻豆 |