Struts2與SpringMVC的區別


(一)區別:

1.機制上:①:Struts2入口是--->Filter。【實現請求轉發初始化操作】;①SpringMVC 入口是--->Servlet。【實現請求轉發初始化操作】。

2.性能:SpringMVC比Struts2稍快 【①SpringMVC基於方法【一個方法對應一個request上下文】-->根據注解來注入request數據;①Struts2基於類【一個Action對象對應一個request上下文】-->一個Action對應一個請求-->再調用setter getter方法來注入request中的數據

3.傳遞參數:①Struts2 可以用屬性接受參數。①SpringMVC不用屬性獲取。

4.設計思想上:①Struts2更加符合OOP(面向對象編程)的編程思想。 ①而SpringMVC就比較謹慎,在servlet上拓展

5.intercepter的實現機制:①Struts2有自己的攔截器機制。①SpringMVC用的是獨立的AOP方式--->SpringMVC的配置文件比Struts2

6.SpringMVC驗證支持JSR303,處理起來更加靈活方便【亮點

(二)Struts2框架

1.工作流程:

客戶端--(發送請求)-->經過一系列過濾器FilterDispatcher--->③過濾器去解析sruts.xml(查找相應Action,沒有則報錯;有生成代理對象)--->一系列攔截器Interceptor--->直到調用Action類中的execute()方法(會產生結果result)--->⑥結果由Struts2的處理器-->⑦核心過濾器--->⑧服務器-->響應到客戶端。

圖解:(拿來主義)

2.①屬於類級別的攔截,一個請求---》對應一個Action,是基於類的。【方法之間獨立,但是action變量是可以共享

然后調用get和set方法把request請求中的數據注入其中。

驗證實現更加繁瑣

(三)SpringMvc框架。

1.工作流程:

 

 ①客戶端發起請求--->②DispatcherServlet(web.xml中配置前端控制器)-->③(請求HandlerMapping處理器映射器)查找Handler【根據xml注解進行查找】-->④HandlerMapping向DispatcherServlet返回Handler--->⑤DispatcherServlet調用HandlerAdapter(處理器適配器)執行Handler--->⑥HandlerAdapter執行Handler-->

⑦Handler執行完成給HandlerAdapter返回ModelAndView-->HandlerAdapter向DispacherServlet返回ModelAndView【是SpringMVC框架的底層對象,包括Model和View】--->⑧DispacherServlet請求ResolverView(視圖解析器)進行視圖即系(解析成真正的視圖jsp)-->⑨視圖解析器向DispacherServlet返回View--->⑩DispacherServlet進行視圖渲染(將模型數據【ModelAndView對象中】)填充到request域中--->11. DispacherServlet向用戶響應(response)結果。

2.籠統的說:

處理流程規范化的首要內容就是考慮一個通用的Servlet響應程序大致應該包含的邏輯步驟:
步驟1—— 對Http請求進行初步處理,查找與之對應的Controller處理類(方法)   ——HandlerMapping
步驟2—— 調用相應的Controller處理類(方法)完成業務邏輯                 ——HandlerAdapter
步驟3—— 對Controller處理類(方法)調用時可能發生的異常進行處理          ——HandlerExceptionResolver
步驟4—— 根據Controller處理類(方法)的調用結果進行Http響應處理 

3.①屬於單列模式,基於方法的模式,粒度更細。【方法之間不共享變量,獨享request  response數據--->處理結果通過ModelMap交回框架】。

②SpringMVC集成了Ajax,使用起來更加方便。只需要一個@ResponseBody就可以實現。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM