MVC介紹java
MVC是什麼web
mvc是一種使用MVC(Model View Controller) 設計建立Web應用程序的模式spring
Model(模型) 表示程序核心計算mvc
View(視圖) 展現數據框架
Controller (控制器) 處理輸入ide
經常使用的MVC框架工具
比較經常使用的MVC框架有Struts 和 Spring MVC
spa
Struts是java Web MVC框架中不爭的王者。通過長達九年的發展,Struts已經逐漸成長爲一個穩定、成熟的框架,而且佔有了MVC框架中最大的市場份額。可是Struts某些技術特性上已經落後於新興的MVC框架。面對spring MVC 、webwork2 這些設計更精密,拓展性更強的框架,struts收到了史無前例的挑戰。設計
Spring MVC 經過一套MVC註解,讓POJO成爲處理請求的控制器,無須實現任何接口,同時,Spring MVC 還支持REST風格的URL請求,註解驅動和REST風格的Spring MVC 是spring3.0最出彩的功能之一。此外,spring MVC 在數據綁定、視圖解析、本地化處理及靜態資源處理上都有許多不俗的表現。它在框架設計、擴展性、靈活性等方面全面超越了Struts、Webwork等MVC框架,從原來的追趕着一躍成爲MVC的領跑者。xml
MVC模式的優缺點
優勢:
耦合性低
重用性高
生命週期成本低
部署快
可維護高
有利軟件工程化管理
缺點:
沒有明確的定義
不適合小型,中等規模的應用程序
增長系統結構和實現的複雜度
視圖與控制器的鏈接過於緊密
視圖對模型數據的訪問效率低
通常高級的界面工具或構造器不支持模式
SpringMVC簡介
和衆多的MVC框架同樣,它基於MVC設計理念,此外,它採用了鬆散耦合可插拔組件結構,比其餘MVC框架更具擴展性和靈活性。
spring MVC 在數據綁定、視圖解析、本地化處理及靜態資源處理上有許多不俗的表現。
spring MVC 框架圍繞DispatcherServlet 這個核心類展開,DispatcherServlet是spring MVC的總導演、總策劃,它負責截獲請求並將其分配給指定的處理器處理。
SpringMVC體系結構
spring MVC是基於model2實現的技術框架
DispatcherServlet類
配置DispatcherServlet
要使用SpringMVC,必須在web.xml中配置DispatcherServlet類
圖5
DispatcherServlet有一些配置參數,默認狀況下咱們不用指定,若是須要可經過<servlet>的<init-param>指定:
namespace
contextConfigLocation
publishContext
publishEvents
圖6
DispatcherServlet的體系結構
DispatcherServlet類的運行體系:
DispatcherServlei的核心本質:是一個Servlet
init方法在整個系統啓動時運行,且只運行一次
service方法在系統運行的過程當中處於監聽模式,監聽並處理全部的Web請求
圖7
DispatcherServlet類的繼承體系:
依次繼承FrameworkServlet和HttpServLetBean
HttpServletBean是Spring對於Servlet最低層次的抽象
FrameworkServlet則是在HttpServletBean的基礎之上的進一步抽象。經過FrameworkServlet真正初始化了一個Spring的容器(WebApplicationContext),並引入到Servlet對象之中
DispatcherServlet經過initStrategies方法查找並裝備Spring容器中用戶定義的組件Bean