【SSH進階之路】深入源碼,詳解Struts基本實現流程

來源:互聯網
上載者:User

標籤:web應用   架構師   javabean   ssh   struts   

       通過一步步的封裝我們實現了Struts的基本雛形,我們解決了Struts怎麼實現MVC的問題,我們現在僅僅有了Struts的基礎,對Struts的學習才剛剛開始,這篇我們要通過對比MVC來理解Struts的執行流程,最後深入Struts的源碼,一看究竟。

 

MVC

 

M:商務邏輯,業務資料可以重複使用,我們經常說的javabean(其實struts沒有實現業務層,也無法實現)

V:顯示邏輯,同一份資料,對應多中顯示方法,JSP代碼實現

C:控制流程程器,Servlet代碼實現。

 

我們通過時序圖看一下MVC模式的執行流程,如所示:


 

Struts

     

      從前面幾篇部落格,我們知道了Struts是基於JSP和Servlet的一個開源的Web應用程式框架,對MVC進行了高度封裝,並且我們從MVC一步步的封裝了一個Struts。

 

       目錄:

      【SSH進階之路】Struts基本原理 + 實現簡單登入(二)

      【SSH進階之路】一步步重構MVC實現Struts架構——從一個簡單MVC開始(三)

      【SSH進階之路】一步步重構MVC實現Struts架構——封裝商務邏輯和跳轉路徑(四)

      【SSH進階之路】一步步重構MVC實現Struts架構——徹底去掉邏輯判斷(五)

      【SSH進階之路】一步步重構MVC實現Struts架構——完善轉向頁面,大功告成(六)

 

      那我們就先畫一個跟我們前面的例子一致,並且也跟MVC大致相同的時序圖,為了協助大家理解Struts的整個更詳細的流。如下所示:

 

大致流程:

 


深入源碼:
 

      我們理解Struts的基本流程之後,我們還需要深入源碼一看究竟,我們學Struts不僅僅是為了使用,還要理解它的真正原理。如果你只為了簡單的使用,可以到此為止,如果你想成為一個優秀的架構師,你還不能止步。

 

時序圖如下所示:

 


      從上面的圖中我們可以發現ActionServlet幾乎完成了Struts的所有的功能,跟MVC的控制器一樣,起到了非常重要的作用,我們再將它更加細粒度的解析一下,如所示:

 


       從上面的流程圖,我們可以發現RequestProcessor起到了至關重要的作用,完成了截取URL,設定映射關係,以及反射建立ActionForm,然後設定值,再反射建立Action,最後再執行execute方法,完成轉向。此時,我們的思路已經非常清晰了。下面我用自己的語言總結一下Struts的流程。

 

Struts流程

 

       我們已經看完了Struts的基本流程以及也深入源碼看了一遍Struts的實現流程,下面我們需要用自己的語言來總結一下。

1) 用戶端發出http請求。

2)根據web.xml配置,該請求被ActionServlet接收。

3)根據struts-config.xml配置,ActionServlet先將請求中的參數填充到ActionForm中,然後ActionServlet再將請求發送到Action 進行處理。

4)是否驗證,需要驗證則調用ActionForm的validate方法,驗證失敗則跳轉到input,成功則繼續。

5)Action從ActionForm獲得資料,調用javabean(Model)中的業務方法處理資料。

6)Action返回ActionForward對象,跳轉到相應JSP頁面或Action。

7)返回http響應到用戶端。

 

 上面的流程到處都是,看一看還行,看兩看就煩,我們還是以一張圖進行梳理:

           


總結


     最後,相信經過這一遍遍的對比和分析,你已經對Struts的基本原理了如指掌。


引子:

       下篇部落格,我們會更新一些Hibernate的內容,先從基本原理入手,再給大家搭建Hibenate的開發環境,現實簡單一實例。



【SSH進階之路】深入源碼,詳解Struts基本實現流程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.