SpringMVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。Spring 框架提供了構建 Web 應用程序的全功能MVC 模塊,其功能和Strtus2,Struts1是類似的,只不過是實現的原理不同而已。其中Struts2是通過過濾器來實現路勁和action的映射等控制流轉功能,而Struts1和SpringMVC則是通過最傳統的servlet來實現對其代碼封裝的。但是都是非常相似的MVC流程框架。簡單看一下SpringMVC框架中的知識點,這裡是從數據的流轉前後順序進行分的:
一,SpringMVC是一個MVC的流程框架,同樣適用在我們的表現層到action模塊中,是MVC架構模式中真正的Controller。SpringMVC在流程處理方面更加靈活,可以很容易的進行擴展,可以和Spring框架進行無縫集成,畢竟是一家公司生產的,就是為了解決web開發問題,增加競爭性。但是SpringMVC有侵入性,action需要繼承框架指定的類,或者實現指定的接口。
二,看一個它實現的原理圖吧:
和Struts2還是很相似的,有一個核心過濾器Dispatcher,和核心配置文件springMVC-servlet.xml,通過過濾做一些固定的任務,到達指定的action進行相關業務的操作。看網上一篇文章吧,寫的挺詳細的:spring MVC原理
三,初步使用:
1,由於SpringMVC是繼Spring後續開發的,它利用了Spring的jar包,這裡看一下需要導入的jar包:
commons-logging.jar(日志輸出)
spring-webmvc.jar(SpringMVC核心包)
spring.jar (Spring核心包)
2,編寫springMVC-servlet.xml文件,存放到/WEB-INF/目錄下,基本編寫如下:
springMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/springMVC-servlet.xml 1 springMVC *.html
public class HelloWorldController implements Controller { /** * 類似於Servlet的doGet(),doPost()方法 */ public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception { //接收數據,這裡有request,response等,對於數據處理方便了很多 //調用服務層。 //判斷返回結果 //ModelAndView用於表示視圖:給予視圖層文件的名稱。(根據框架的視圖解析器,增加前綴,和後綴,查找配置資源。) //ModelAndView也可以表示模型對象,將數據傳遞給視圖層。(默認情況下是采用轉發方式進行跳轉。) return new ModelAndView("success","username","zhangsan"); // /WEB-INF/jsp/spring/ + success + .jsp } }
這樣基本框架實現就算完成了,很多框架的搭建都是這些步驟,只不過需要我們注意其中的細節,配置文件的編寫等等。
SpringMVC的總體認識就是這些,後邊會總結其中的一些知識點,這裡不再贅述!通過和Struts2對比著學習,來尋找一些異同,通過實踐來使自己理解的更加深刻。