(jsp+servlet+javabean )MVC架構


 

MVC是三個單詞的縮寫,這三個單詞分別為:模型、視圖和控制。

使用的MVC的目的:在於將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式。比如Windows系統資源管理器文件夾內容的顯示方式,下面兩張圖中左邊為詳細信息顯示方式,右邊為中等圖標顯示方式,文件的內容並沒有改變,改變的是顯示的方式。不管用戶使用何種類型的顯示方式,文件的內容並沒有改變,達到M和V分離的目的。

MVC架構是交互式應用中廣泛使用的架構。它將對象按功能進行划分,盡可能地最小化對象之間的耦合度。MVC架構與傳統的應用程序架構—輸入,處理,輸出給用戶接口的模型相對應。它們也與基於域的多層企業級WEB應用相對應。

MVC架構將應用分為三層—模型,視圖,控制,並減弱它們各自的責任。每一層處理特定的任務並對其它層有特殊的責任。

模型存儲業務數據和控制訪問與修改業務數據的業務邏輯或操作。表現上看,模型與軟件中的函數功能有些相似。當模型改變時會通知視圖並為視圖提供了查詢模型狀態的能力。它也為控制器提供了訪問封裝在模型中的應用功能函數的能力。

視圖展示模型中的內容。它訪問模型中的數據並完成數據的顯示工作。當模型改變時它會即時更新數據的展示。視圖也完成將用戶的輸入傳遞到控制器的功能。

控制器定義了應用程序的行為。它分派用戶的請求然后調用相應的視圖來展示。它解析用戶的輸入然后與模型中完成相應功能的事件處理相匹配。在標准的GUI客戶端應用中,用戶輸入包括點擊按鈕和選擇菜單。在WEB應用中,它們則是WEB層中的HTTP GET和POST請求。控制器選擇相應的視圖來顯示是基於用戶與模型相互交互的結果。一個典型的應用是所有相關的功能由一個控制器來處理。一些應用針對不同的客戶端類型采用不同的控制器來處理,因為視圖的交互與選擇可能因客戶端類型的不同而有所不同。

最典型的MVC就是jsp+servlet+javabean模式。

JavaBean作為模型,既可以作為數據模型來封裝業務數據,又可以作為業務邏輯模型來包含應用的業務操作。其中,數據模型用來存儲或傳遞業務數據,而業務邏輯模型接收到控制器傳過來的模型更新請求后,執行特定的業務邏輯處理,然后返回相應的執行結果。

JSP作為表現層,負責提供頁面為用戶展示數據,提供相應的表單(Form)來用於用戶的請求,並在適當的時候(點擊按鈕)向控制器發出請求來請求模型進行更新。

Serlvet作為控制器,用來接收用戶提交的請求,然后獲取請求中的數據,將之轉換為業務模型需要的數據模型,然后調用業務模型相應的業務方法進行更新,同時根據業務執行結果來選擇要返回的視圖。

MVC舉例二:

JSP其實就是servlet。是從Servlet繼承而來。只不過它在Servlet當中又添加/修改了一些方法,作了新的封裝。

JSP是Servlet的擴展,在沒有JSP之前,就已經出現了Servlet技術。Servlet是利用輸出流動態生成HTML頁面,包括每一個HTML標簽和每個在HTML頁面中出現的內容。  由於包括大量的HTML標簽、大量的靜態文本及格式等,導致Servlet的開發效率極為低下。  從表面上看,JSP頁面已經不再需要Java類,似乎完全脫離了Java面向對象的特征。事實上,JSP是Servlet的一種特殊形式,每個JSP頁面就是一個Servlet實例——JSP頁面由系統編譯成Servlet,Servlet再負責響應用戶請求。JSP其實也是Servlet的一種簡化,使用JSP時,其實還是使用Servlet,因為Web應用中的每個JSP頁面都會由Servlet容器生成對應的Servlet。對於Tomcat而言,JSP頁面生成的Servlet放在work路徑對應的Web應用下。

servlet(其實之前需要在xml配置文件,現在不需要了,更方便了)

 

servlet需要容器的支持才能運行,如Tomcat、jetty.
達到servlet的請求,需要ServletRequest對象和ServletResponse對象去處理。

現在JSP用來做頁面視圖的展現,servlet用於邏輯控制。在MVC架構模式中,就 JSP 和 Servlet而言,C通常由 Servlet充當,V通常由 JSP來充當。

 

servlet在服務器中的運行:1.加載到內存->2.初始化(init()) - > 3.調用(service(){doGet/doPost}) - 4.銷毀(destroy())。其中(1)(2)(4)在 Servlet的整個生命周期中只會被執行一次,

 

servlet是后台處理程序,負責接收客戶端發送的信息,處理並返回相應的信息。
jsp在現在的環境下,作用就如同一個顯示器+鍵盤+鼠標,負責顯示、輸入數據。
Java Web項目運行的流程大概是這樣的客戶端jsp頁面發送請求-->servlet接收-->其他層次處理數據(biz、dao等業務處理,訪問數據庫等)-->servlet將處理后的結果返到客戶端jsp-->jsp負責顯示處理后的數據。
搞清楚這個流程之后,servlet和jsp的作用就一目了然了。
JAVAEE常說的三大框架就是SSH:struts2+spring+hibernate;
其中structs是顯示層的框架,為數據傳入、數據返回客戶端提供支持。
hibernate是數據層的框架,負責與數據庫連接,簡化JDBC開發。
spring則是一個輕量級框架,他提供很多功能,能對上面的框架提供更好的支持,同時解決耦合、業務變更等其他問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM