日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【SSH之旅】一步学习的步Struts1相框(三):分析控制Struts1示例

發布時間:2025/3/14 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SSH之旅】一步学习的步Struts1相框(三):分析控制Struts1示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

部分博客,,先后實施了Struts抽樣。現在我們來分析這個樣本。具體解釋Struts1。

? ? ? ? ? ? ?

Struts1的幾個核心組件是值得我們注意的:?

? ? ? ? (1)ActionServlet(核心控制器)。??

? ? ? ? (2)ActionForm(接收頁面中傳過的數據)。?

? ? ? ? (3)Action(是控制器,主要是從ActionForm中接收頁面傳進來的數據,然后進行邏輯處理)。?

? ? ? ? (4)ActionForward(頁面跳轉。跳轉到jsp組件)。?

? ? ? ? (5)ActionMapping(配置每一個Action所相應的映射關系)。?

詳細的工作流程例如以下:?

? ? ? (1)ActionServlet是在web.xml中配置的一個自己主動啟動項。

當webserver啟動時,也就同一時候實例化了 ActionServlet類,ActionServlet會去初始化struts-config.xml的配置信息,并將其載入到內存中。去實例化action-bean。actionform等對象。 ?

? ? ? (2)當ActionServlet接收到來自client的請求時,就會去檢索和去請求相匹配ActionMapping實例,假設沒有找到則返回500錯誤.?

? ? ? (3)假設找到了就檢查相應的ActionForm實例是否存在?a、假設存在,先把該實例相關數據reset清空一下。然后就把用戶提交的表單數據填充到ActionForm 實例中. b、假設不存在。就創建一個ActionForm對象,再把用戶提交的表單數據填棄到ActionForm實例中?

? ? ? (4)接著,再依據配置。看看是否要對表單進行驗證(validate),假設須要驗證,則調用ActionForm的 validate()方法對表單進行驗證。a、假設驗證沒通過。則返回錯誤信息。?b、假設不須要驗證。或者須要驗證但validate方法返回null或者是返回一個不包括ActionMessage的ActionErrors對象的話。表明驗證成功。

? ? ?(5)ActionServlet依據ActionMapping實例所包括的映射信息決定將請求發送給哪個Action,假設相應的 ? Action實例不存在,則創建該Action的實例,然后調用該Action的execute()方法 ?

? ? ?(6)運行完Action實例的execute()方法后,該方法會返回一個ActionForward對象。 ?

? ? ?(7)ActionServlet再把client發過來的請求。轉發給ActionForward對象所指向的JSP組件。 ?

? ? ?(8)ActionForward所指向的JSP組件再生成動態網頁,送回給client。


Struts1與傳統MVC有什么差別呢?

? ? ? ?傳統MVC(Model2)中:

? ? ? ? ? ? ? ? ? ? ??

? ? ? ?MVC設計模式中。先由客戶發送HTTP請求,控制器Servlet會接收用戶發送的全部請求。然后Servlet調用javabean。將顯示結果通過JSP頁面進行顯示。

?
? ? ? 傳統MVC和Struts對比:

? ? ? ? ? ? ?

總結:

? ? ? ??struts1中,依舊存在servlet(控制器)。但這個時候卻是ActionServlet。由struts-config.xml配置文件控制,action就相當于MVC中一個個的servlet,由Action調用javabean完畢一個個詳細的操作業務。


? ? ? ? Struts1比傳統的MVC模式多了三個組件。即標簽庫,ActionForm和Action,關于Struts1和MVC的關系。我感覺MVC是一個標準。而Struts1是實現。MVC像一個接口,struts1實現了這個接口。


版權聲明:本文博主原創文章。博客,未經同意不得轉載。

轉載于:https://www.cnblogs.com/zfyouxi/p/4821402.html

總結

以上是生活随笔為你收集整理的【SSH之旅】一步学习的步Struts1相框(三):分析控制Struts1示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。