1. SpringMVC的作用
SpringMVC解決了V-C交互的問題,也就是服務器端如何接收請求並給予響應的問題,即:客戶端如何將請求發給服務器端的控制器,並控制器能夠接收到這些請求及請求的參數等,當控制器處理完這個請求之后,還能夠以轉發、重定向或其它方式向客戶端進行響應。
在傳統的Java EE項目中,是使用Servlet作為控制器的,並且每種請求對應1個Servlet,例如用戶嘗試注冊,則服務器端就有一個RegisterServlet,如果用戶嘗試登錄,則服務器端就有一個LoginServlet……所以,一個完整的項目中,用戶的請求的種類會非常多,就會導致項目中會需要創建大量的Servlet類,並添加大量的配置(每個Servlet在web.xml至少有8行配置代碼),當代碼量龐大時,管理難度也會增加,在實際運行時,會創建大量的Servlet對象,對內存的開銷也非常大。
2. SpringMVC的核心組件
在SpringMVC框架中的核心組件有:
DispatcherServlet:前端控制器
HandlerMapping:處理請求路徑與實際處理請求的控制器的映射關系
Controller:實際處理請求的組件
ModelAndView:處理完請求后,封裝了響應結果和負責響應的視圖的名稱的組件
ViewResolver:根據視圖名得到具體負責顯示的視圖組件
具體的核心執行流程為: