Struts2與springmvc的區別
* 1: Struts2框架是類級別的攔截,每次來了請求就創建一個Action,然后調用get和set方法吧request中的數據注入.
* Struts2中一個action對應一個requset上下文.
* 2 :SpringMVC是方法級別的攔截,攔截到方法后根據參數的注解,把requset數據注入進去springmvc容器中
* 一個方法對應一個request上下文.
* 3 :springmvc方法之間基本獨立,獨享requset和response之間的數據。請求數據通過參數獲取,處理結果通過model Map交回給框架。(方法之間不共享變量)
* Struts雖然方法之間也是獨立的,當時action變量是可以共享的
* 4 :處理ajax的請求很方便,只需一個注解2responseBody ,直接返回響應文本。
* 5 :SpingMVC的實現是servlft.Struts2是filter。
* 6 :intercepter的實現機制。Struts 有自己的攔截器機制.interceptor,Springmvc用的是獨立的AOP方式,導致Springmvc的配置文件比struts2的配置文件多.
SpringMVC的工作流程
* 1 :先是客戶端發出一個http請求給服務器,web服務器對http請求解析, 如果匹配到DispatcherServlet的請求映射路徑(在web.xml文件中指定) web容器將請求轉交給DispatcherServlft
* 2 :DispatcherServlet接收到這個請求之后,根據請求的信息(包括url,http,請求報文頭,和請求參數Cookie等),以及HandlerMapping的配置趙大鵬處理請求的處理器(handler)
3:DispatcherServlet根據HandlerMapping找到對應的Handler,並將處理權交給Handler,在有具體的HandlerAdapter對handler進行具體的調用.
* 4Handler對數據處理完成以后將返回一個ModelAndView()對象給DispatcherServlet.
* 5Handler返回的視圖是一個邏輯視圖並不是真正的視圖,DispatcherServlft通過ViewResolver將邏輯視圖轉換為真正的視圖View
* 7 Dispatcher通過model解析出ModelAndView()參數進行解析,最終展出出完整的view並返回給客戶端