創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設、略陽網(wǎng)站維護、網(wǎng)站推廣。一、MVC概要
MVC是模型(Model)、視圖(View)、控制器(Controller)的簡寫,是一種軟件設計規(guī)范,用一種將業(yè)務邏輯、數(shù)據(jù)、顯示分離的方法組織代碼,MVC主要作用是降低了視圖與業(yè)務邏輯間的雙向偶合。MVC不是一種設計模式,MVC是一種架構模式。當然不同的MVC存在差異。
在web早期的開發(fā)中,通常采用的都是Model1。Model1中,如圖所示主要分為兩層,視圖層和模型層。Model2把一個項目分成三部分,包括視圖、控制、模型。這樣不僅提高的代碼的復用率與項目的擴展性,且大大降低了項目的維護成本。Model 1模式的實現(xiàn)比較簡單,適用于快速開發(fā)小規(guī)模項目,Model1中JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現(xiàn)邏輯混雜在一起,從而導致代碼的重用性非常低,增加了應用的擴展性和維護的難度。Model2消除了Model1的缺點。
Model1
Model2
常見的服務器端MVC框架有:Struts、Spring MVC、ASP.NET MVC、Zend Framework、JSF;常見前端MVC框架:angularjs、reactjs、backbone;由MVC演化出了另外一些模式如:MVP、MVVM。
二、Spring MVC介紹
Spring MVC是Spring Framework的一部分,是基于Java實現(xiàn)MVC的輕量級Web框架。Spring MVC的特點:
1、輕量
2、高效
3、與Spring兼容性好
4、功能強大
RESTful、數(shù)據(jù)驗證、格式化、綁定機制、本地化、主題等
5、簡潔靈活
Spring的web框架圍繞DispatcherServlet設計。 DispatcherServlet的作用是將請求分發(fā)到不同的處理器。從Spring 2.5開始,使用Java 5或者以上版本的用戶可以采用基于注解的controller聲明方式。官網(wǎng)上說Spring的web模塊提供了大量獨特的功能,包括:
清晰的角色劃分:控制器(controller)、驗證器(validator)、 命令對象(command object)、表單對象(form object)、模型對象(model object)、 Servlet分發(fā)器(DispatcherServlet)、 處理器映射(handler mapping)、視圖解析器(view resolver)等等。 每一個角色都可以由一個專門的對象來實現(xiàn)。
強大而直接的配置方式:將框架類和應用程序類都能作為JavaBean配置,支持跨多個context的引用,例如,在web控制器中對業(yè)務對象和驗證器(validator)的引用。
可適配、非侵入:可以根據(jù)不同的應用場景,選擇合適的控制器子類 (simple型、command型、form型、wizard型、multi-action型或者自定義),而不是從單一控制器 (比如Action/ActionForm)繼承。
可重用的業(yè)務代碼:可以使用現(xiàn)有的業(yè)務對象作為命令或表單對象,而不需要去擴展某個特定框架的基類。
可定制的綁定(binding) 和驗證(validation):比如將類型不匹配作為應用級的驗證錯誤, 這可以保存錯誤的值。再比如本地化的日期和數(shù)字綁定等等。在其他某些框架中,你只能使用字符串表單對象, 需要手動解析它并轉換到業(yè)務對象。
可定制的handler mapping和view resolution:Spring提供從最簡單的URL映射, 到復雜的、專用的定制策略。與某些web MVC框架強制開發(fā)人員使用單一特定技術相比,Spring顯得更加靈活。
靈活的model轉換:在Springweb框架中,使用基于Map的 鍵/值對來達到輕易地與各種視圖技術的集成。
可定制的本地化和主題(theme)解析:支持在JSP中可選擇地使用Spring標簽庫、支持JSTL、支持Velocity(不需要額外的中間層)等等。
簡單而強大的JSP標簽庫(Spring Tag Library):支持包括諸如數(shù)據(jù)綁定和主題(theme) 之類的許多功能。它提供在標記方面的大靈活性。
JSP表單標簽庫:在Spring2.0中引入的表單標簽庫,使得在JSP中編寫 表單更加容易。
Spring Bean的生命周期可以被限制在當前的HTTP Request或者HTTP Session。 準確的說,這并非Spring MVC框架本身特性,而應歸屬于Sping MVC使用的WebApplicationContext容器。
三、第一個Spring MVC 項目:Hello World
3.1、通過Maven新建一個Web項目
在Eclipse中新建Maven項目,選擇“Create a simple project”,創(chuàng)建一個簡單項目,不選擇模板。
修改層面信息,更加詳細的內(nèi)容請參考前面寫過的文章:
將webcontent中的所有內(nèi)容復制到webapp目錄下,并刪除webContent目錄,刪除后的結果如下:
修改項目的部署信息,刪除測試文件夾,添加webapp為項目根目錄:
如果不打算在pom.xml中添加對Server runtime的依賴,則這里必須手動添加依賴,如下圖所示:
另外如果pom.xml報錯,修改任意位置保存。
3.2、添加依賴的jar包
1、修改pom.xml文件、添加jar包的依賴,主要有:Spring框架核心庫、Spring MVC、JSTL等,具體信息如下:
4.0.0 com.zhangguo SpringMVC01 0.0.1 war UTF-8 4.3.0.RELEASE org.springframework spring-context ${spring.version} org.springframework spring-webmvc ${spring.version} javax.servlet jstl 1.2