文档章节

关于 Struts2 和 SpringMVC 区别?

糊说八道
 糊说八道
发布于 2017/11/03 14:50
字数 503
阅读 72
收藏 3

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

那我们先就从原理出发:

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

 

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

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

© 著作权归作者所有

上一篇: ThreadLocal 使用
下一篇: 一道面试题
糊说八道
粉丝 8
博文 100
码字总数 46908
作品 0
其它
程序员
私信 提问
struts2和spring mvc,孰优孰劣?

最近我在将APDPlat升级到Java8,由于之前有很多的同学希望我把APDPlat的struts2替换为spring mvc,所以我就决定试试看。 本次我把APDPlat的struts2改造为spring mvc的目标是:99.99%不改动J...

杨尚川
2015/04/19
11.9K
58
Spring MVC与Struts比较

Struts2与SpringMVC都是比较优秀,也是被广泛使用的Web开发框架,那么他们之间有什么区别呢?今天小博老师就跟大家来讨论下这个问题。 Struts工作流程图 Struts与Spring之间主要有以下几点区...

博为峰教研组
2016/11/24
25
0
Struts2和Spring MVC的区别有哪些?

Spring MVC是Struts2的改进吗?使用两者的区别大吗? Struts2和Spring MVC的主要区别有哪些?

文心雕码
2014/04/05
3.1K
3
struts2.0和Spring MVC

Spring MVC 和 Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外)。 Spring MVC和S...

耿中华
2014/09/18
98
0
Spring MVC和Struts2的比较

Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外)。 Spring MVC和S...

姚君
2014/04/05
329
2

没有更多内容

加载失败,请刷新页面

加载更多

WOW.js 使用教程 页面动画

使用教程 wow.js依赖于animate.css,首先需要在 head内引入animate.css或者animate.min.css。 <link rel="stylesheet" href="css/animate.css"> 引入wow.js或者wow.min.js,然后js文件里再写......

东东笔记
19分钟前
4
0
JavaMail实现简单邮件开发——163邮箱

1、打开 P0P3/SMTP/IMAP 2、开发工具类 CodeUtils.java package com.demo.mymail.utils;import java.util.UUID;public class CodeUtils { public static String generateUn......

开源中国首席碉堡了
20分钟前
5
0
Windows上安装Docker

Windows Docker 安装 win7、win8 系统 win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/dock...

城市之雾
25分钟前
3
0
jdk 设置setConnectionTimeout和SetReadTimeout的意义(详细)

先看例子吧 客户端: package top.quartz.util;/** * description: //connect timeout 是建立连接的超时时间; * //read timeout,是传递数据的超时时间。 * ...

hexiaoming123
25分钟前
17
0
Bootstrap Table含有按钮时表格不对齐

使用Bootstrap Table的时候,在含有按钮的情况,有时候表格的线垂直方向上不对齐 解决方法: (1)调整表格的高度小些或者大些(至于为什么,并不清楚,调整高度后就对齐了) (2)加setTime...

tianyawhl
31分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部