關於 Struts2 和 SpringMVC 區別?

又是一個常問的面試題,真是面試一次長一次見識。html

那咱們先就從原理出發:前端

springMVC 原理(見下圖):面試

SpringMVC 流程

一、  用戶發送請求至前端控制器 DispatcherServlet。spring

二、  DispatcherServlet 收到請求調用 HandlerMapping處理器映射器。後端

三、  處理器映射器找到具體的處理器(能夠根據 xml 配置、註解進行查找),生成處理器對象及處理器攔截器(若是有則生成)一併返回給DispatcherServlet。app

四、  DispatcherServlet 調用 HandlerAdapter 處理器適配器。框架

五、  HandlerAdapter 通過適配調用具體的處理器(Controller,也叫後端控制器)。學習

六、  Controller 執行完成返回 ModelAndView。url

七、  HandlerAdapter 將 controller 執行結果 ModelAndView 返回給 DispatcherServlet。spa

八、  DispatcherServlet 將 ModelAndView 傳給 ViewReslover視圖解析器。

九、  ViewReslover 解析後返回具體 View。

十、DispatcherServle 根據 View 進行渲染視圖(即將模型數據填充至視圖中)。

十一、 DispatcherServlet 響應用戶。

轉自:SpringMVC 工做原理(寫的很好學習了)

 

那麼下面在說下 Struts2 的原理(以下圖):

 

詳情參考:Struts2 的工做原理(圖解)詳解 (寫的真的很不錯本菜鳥又學習了!)

框架原理的這種東西本菜鳥不理解的,慢慢學習吧。

 

瞭解完原理下面開始總結兩者區別:

一、Struts2 是類級別的攔截, 一個類對應一個 reques t上下文,SpringMVC 是方法級別的攔截

二、Struts2 的核心是基於一個過濾器即 StrutsPreparedAndExcuteFilter

      SpringMvc的核心是基於一個 Servlet 即 DispatcherServlet前端控制器

...................

(更多細節看下博客)

SpringMVC 與 Struts2 區別與比較總結 - CSDN博客

 

水平有限,如有問題請留言交流!

互相學習,共同進步:) 轉載請註明出處謝謝!

相關文章
相關標籤/搜索