关于 Struts2 和 SpringMVC 区别?

拟墨画扇 提交于 2019-11-27 20:43:49

又是一个常问的面试题,真是面试一次长一次见识。

那我们先就从原理出发:

springMVC 原理(见下图):

SpringMVC 流程

1、  用户发送请求至前端控制器 DispatcherServlet。

2、  DispatcherServlet 收到请求调用 HandlerMapping处理器映射器。

3、  处理器映射器找到具体的处理器(可以根据 xml 配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、  DispatcherServlet 调用 HandlerAdapter 处理器适配器。

5、  HandlerAdapter 经过适配调用具体的处理器(Controller,也叫后端控制器)。

6、  Controller 执行完成返回 ModelAndView。

7、  HandlerAdapter 将 controller 执行结果 ModelAndView 返回给 DispatcherServlet。

8、  DispatcherServlet 将 ModelAndView 传给 ViewReslover视图解析器。

9、  ViewReslover 解析后返回具体 View。

10、DispatcherServle 根据 View 进行渲染视图(即将模型数据填充至视图中)。

11、 DispatcherServlet 响应用户。

转自:SpringMVC 工作原理(写的很好学习了)

 

那么下面在说下 Struts2 的原理(如下图):

 

详情参考:Struts2 的工作原理(图解)详解 (写的真的很不错本菜鸟又学习了!)

框架原理的这种东西本菜鸟不理解的,慢慢学习吧。

 

了解完原理下面开始总结二者区别:

1、Struts2 是类级别的拦截, 一个类对应一个 reques t上下文,SpringMVC 是方法级别的拦截

2、Struts2 的核心是基于一个过滤器即 StrutsPreparedAndExcuteFilter

      SpringMvc的核心是基于一个 Servlet 即 DispatcherServlet前端控制器

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

(更多细节看下博客)

SpringMVC 与 Struts2 区别与比较总结 - CSDN博客

 

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!