Struts 2架構總結

來源:互聯網
上載者:User

struts2嘗試提供平台給開發人員快速的開發一般的任務。
struts2是MVC架構的實現,在struts2中model代碼struts2中的action,view代碼struts2中的result,

controller代碼struts2中的FilterDispatcher,在struts2中,controller的工作就是將使用者發送來的請求

與相應的action進行映射,在model中包含DAO,BO等在struts2中model是通過action組件來實現的,View

是用來描述的通過用JSP,Velocity模板,Freemaker或者其他的模板技術。
struts2的工作流程:首先通過配置web.xml之後讓使用者的請求可以進行struts2這個架構中,controller接

受使用者的請求之後確定那個struts2中的action會被調用,struts2架構建立action的執行個體,之後讓action

的執行個體與新的ActionInvocation執行個體進行關聯,struts2調用action之前會先調用一系列的攔截器(攔截器

在struts.xml中進行定義,攔截器可以在做action之前做點什麼事情的)之後action做完之後,攔截器還

會被執行(還是在struts.xml中進行定義的,此時的攔截器可以在action之後做點什麼事情),struts2框

架通過調用ActionInvocations類中的invoke方法來開始執行action,每當invoke方法被調用,都會有攔截

器被調用,攔截器是存放到一個棧中的,之後通過調用攔截器的intercept方法進行調用,intercept方法

中調用invoke方法,ActionInvocation最後才調用action,之後返回相應的result,之後根據相應的

result進行展示。一些攔截器會在action之前執行和有些會在action之後會被執行,攔截器的執行會按照

,在棧中的的定義順序來繼續執行的,在struts2中重要的特色就是OGNL和值棧,OGNL是強大的運算式語言

,常常用於操作資料在值棧中,OGNL很方便的進行資料轉送和類型轉換,並且OGNL提供簡單的文法去引用

java對象。
在struts2的action在值棧中也是ActionContext的一部分,ActionContext是一個全域的儲存區用來儲存用

戶的請求的資料,當一個請求來的時候,parames攔截器協助轉移請求資料到值棧中,現在OGNL轉換表單數

據成為相應的java類型OGNL是通過內建的類型轉換來完成的,之後將java類型轉換在值棧中轉換成為簡單

是Stirng類型的,之後通過HTML進行輸出,Action是Contex是安全執行緒的,每個值儲存在ActionContext是

唯一的線程,所以很安全。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.