(jsp+servlet+javabean )MVC架構

 

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

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

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

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

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

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

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

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

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

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

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

MVC舉例二:jsp

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應用下。hibernate

servlet(其實以前須要在xml配置文件,如今不須要了,更方便了)orm

 

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則是一個輕量級框架,他提供不少功能,能對上面的框架提供更好的支持,同時解決耦合、業務變動等其餘問題。

相關文章
相關標籤/搜索