struts2 MVC模式

來源:互聯網
上載者:User

標籤:http   使用   sp   strong   資料   on   bs   html   ad   

 

在學習struts2之前首先瞭解一下MVC模式。

 MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心組件:模型、視圖、控制器。它們各自處理自己的任務。分層概念

模型(Model)

用於封裝與應用程式的商務邏輯相關的資料以及對資料的處理方法。“模型”有對資料直接存取的權力,例如對資料庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關心它會被如何顯示或是如何被操作。但是模型中資料的變化一般會通過一種重新整理機制被公布。為了實現這種機制,那些用於監視此模型的視圖必須事先在此模型上註冊,從而,視圖可以瞭解在資料模型上發生的改變。

視圖(View)

視圖是使用者看到並與之互動的介面,能夠顯示模型中傳遞的資料。為了實現視圖上的重新整理功能,視圖需要訪問它監視的資料模型(Model),因此應該事先在被它監視的資料那裡註冊。

控制器(Controller)

控制器接受使用者的輸入並調用模型和視圖去完成使用者的需求。所以當單擊Web頁面中的超連結和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後再確定用哪個視圖來顯示返回的資料。

MVC的組件關係圖

互動順序

(1)首先是展示視圖給使用者,使用者在這個視圖上進行操作,並填寫一些業務資料

(2)然後使用者會點擊提交按鈕,來發出請求

(3)視圖發出的使用者請求會到達控制器,在請求中包含了想要完成什麼樣的業務功能以及相關的資料。

(4)控制器會來處理使用者請求,會把請求中的資料進行封裝,然後選擇並調用合適的模型,請求模型進行狀態更新,然後選擇接下來要展示給使用者的視圖。

(5)模型會去處理使用者請求的業務功能,同時進行模型狀態的維護和更新

(6)當模型狀態發生改變的時候,模型會通知相應的視圖,告訴視圖它的狀態發生了改變。

(7)視圖接到模型的通知後,會向模型進行狀態查詢,擷取需要展示的資料,然後按照視圖本身的展示方式,把這些資料展示出來。

下面動手做一個練習,完成填寫使用者資訊並顯示:

使用Servlet中的Filter來充當控制器,他能夠攔截使用者的請求,通過他來分發這些請求到對應的Model和View。

User動作類:

FilterDispatcher控制器類

在FilterDispatcher中的doFilter方法中對請求的資源進行處理:

(1)      如果有必要,對相應的動作類進行執行個體化。

(2)      如果動作對象存在,用請求參數填充該動作的相關屬性

(3)      如果動作對象存在,調用相應的動作方法。在這裡User對象上的save方法就是Save動作的動作方法。

(4)      把請求轉寄給視圖。

這裡的動作指的是能夠應用程式可以完成的一項操作,和動作相關的POJO叫做動作對象。

視圖

input.jsp

detail.jsp

測試:

總結:在這個小程式中,使用Servlet的Filter來充當控制器,來實現請求的轉寄。有input和save兩個動作,input動作的作用僅僅是用於顯示視圖介面,在執行save動作時,控制器執行個體化一個動作對象(User對象),並且使用請求中攜帶的參數來填充動作對象中的屬性,然後指定動作方法(save方法)來完成儲存操作。程式中與商務邏輯和資料操作相關的部分都屬於model層。初學struts2,將學習的過程記錄下來,如有錯誤,望大家指出。

struts2 MVC模式

聯繫我們

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