关于 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博客

 

水平有限,如有问题请留言交流!

互相学习,共同进步:) 转载请注明出处谢谢!

相关文章
相关标签/搜索