直接用一個註冊的小例子來說明一下springMvc的工作原理
1,按照上一篇springMvc的基礎配置新建一個web項目,這個步奏我們需要寫好web.xml,springContext.xml,springMvc.xml這三個配置文件,還需要導入相應的jar包。
2.直接運行工程,輸入用戶名和密碼提交如圖:
可以看到瀏覽器上url的請求: http://localhost:8080/springMvcTest03/register.do 當程序請求register.do的時候,由於工程在程序入口的web.xml配置文件中加入了:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springContext.xml,/WEB-INF/springMvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
服務器接受url的請求,調用DispatcherServlet來處理請求,打開DispatcherServlet的定義,部分定義如下:
在 List<HandlerMapping> handlerMapping 鏈表中,每個handlerMapping 中存放了 url和 Controller的對應的關係,通過這個對應關係 url中的register.do就可以找到對應的controller
3,開始執行定義的controller中的方法,執行結束之後,如果返回字符串則將字符串轉化成相應的視圖對象;如果返回的是ModelAndView,該對象中本身就包含了視圖對象的信息。
4,如果DispacherServlet返回的是ModelAndView對象,還需要將該對象的數據進行解析,輸出給服務器
5.最後服務器將數據輸出到瀏覽器。
整個從發送,處理,得到視圖結果的過程執行結束。