SpringMVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。Spring 框架提供了構建 Web 應用程序的全功能MVC 模塊,其功能和Strtus2,Struts1是類似的,只不過是實現的原理不同而已。其中Struts2是通過過濾器來實現路勁和action的映射等控制流轉功能,而Struts1和SpringMVC則是通過最傳統的servlet來實現對其代碼封裝的。但是都是非常相似的MVC流程框架。簡單看一下SpringMVC框架中的知識點,這裡是從數據的流轉前後順序進行分的:
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cD4gICAgICAgICAgICDSu6OsU3ByaW5nTVZDysfSu7j2TVZDtcTB97PMv/K83KOszazR+crK08PU2s7Sw8e1xLHtz9ay47W9YWN0aW9uxKO/6dbQo6zKx01WQ7zcubnEo8q91tDV5tX9tcRDb250cm9sbGVyoaNTcHJpbmdNVkPU2sH3s8y0psDtt73D5rj8vNPB6bvuo6y/ydLUutzI3dLXtcS9+NDQwKnVuaOsv8nS1LrNU3ByaW5nv/K83L340NDO3rfsvK+zyaOssc++ucrH0ru80rmry77J+rL6tcSjrL7NysfOqsHLveK+9ndlYr+qt6LOyszio6zU9rzTvrrV+dDUoaO1q8rHU3ByaW5nTVZD09DH1sjr0NSjrGFjdGlvbtDo0qq8zLPQv/K83Na4tqi1xMDgo6y78tXfyrXP1ta4tqi1xL3Tv9qhozwvcD4KPHA+IDwvcD4KPHA+ICAgICAgICAgILb+o6y/tNK7uPbL/Mq1z9a1xNStwO3NvLDJo7o8L3A+CjxpbWcgc3JjPQ=="/uploadfile/Collfiles/20140321/20140321125722278.jpg" alt="\">
和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對比著學習,來尋找一些異同,通過實踐來使自己理解的更加深刻。