Spring MVC執(zhí)行流程
1.用戶發(fā)送請求到DispatcherServelet
2.DispatcherServelet請求HandlerMapping查找Handler并返回Handler
3.DispatcherServelet調(diào)用HandlerAdapter并執(zhí)行Handler
4.Handler執(zhí)行完返回ModelAndView給HandlerAdapter
5.HandlerAdapter再將ModelAandView返回給DispatcherServelet
6.DispatcherServelet請求視圖解析器解析ModelAandView
7.視圖解析器返回真正的視圖給DispatcherServelet
8.DispatcherServelet進(jìn)行視圖渲染并向用戶響應(yīng)結(jié)果
Spring MVC與Struts2的主要區(qū)別
1
Spring MVC的入口是servlet即前端控制器(DispatcherServelet)
Struts2入口是filter過濾器(StrutsPrepareAndExecuteFilter)
2
Spring MVC是基于方法開發(fā)弊予,傳遞參數(shù)是通過方法形參浴栽,可以設(shè)計為單例或多例(建議單例)
Struts2是基于類開發(fā)率碾,傳遞參數(shù)是通過類的屬性,只能設(shè)計為多例
3
Spring MVC通過參數(shù)解析器是將Request對象內(nèi)容進(jìn)行解析成方法形參溶褪,將響應(yīng)數(shù)據(jù)和頁面封裝成ModelAndView對象,最后又將模型數(shù)據(jù)通過Request對象傳輸?shù)巾撁妗?JSP視圖解析器默認(rèn)使用jstl
Struts采用值棧存儲請求和響應(yīng)的數(shù)據(jù)污筷,通過OGNL存取數(shù)據(jù)