Spring MVC是Spring Web MVC的简称,是一款和struts2媲美的控制层框架,是Spring家族的成员,能与Spring框架无缝整合在一起。

什么是MVC模式

MVC模式是Web开发中最经典的一种业务处理模式,它的核心思想是将应用拆分成三个层,分别是Model层、View层和Controller层;当客户端发送请求时,通过Controller层接受并分发请求给Model层去处理,然后Model层将请求完成后发送给Controller层,Controller层再通过封装将请求响应给View层显示。这样做的好处是:
- 降低各个层之间的耦合
- 使得项目层次清晰,便于维护
一、Spring MVC的执行流程简图:

二、Spring MVC的架构:

三、Spring MVC的架构执行流程:
- 用户发送请求至前端控制器DispatcherServlet
- DispatcherServlet收到请求调用HandlerMapping处理器映射器。
- 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
- DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
- 执行处理器(Controller,也叫后端控制器)。
- Controller执行完成返回ModelAndView
- HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
- DispatcherServlet将ModelAndView传给ViewReslover视图解析器
- ViewReslover解析后返回具体View
- DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
- DispatcherServlet响应用户
四、Spring MVC与Struts2的不同:
1、SpringMVC的程序入口为DispatcherServlet前端控制器,即一个Servlet,而Struts2是基于Filter过滤器的
2、SpringMVC对路径进行精准地导航并且回显,控制器中的每一个方法代表着一个请求,处理粒度小;而Struts2是基于struts.xml配置文件的配置而导航,以整个Action类作为路径,处理粒度大。
3、SpringMVC默认采用的是单例模式,而struts2需要采用多例模式(详情参考:为什么struts2一定要多例)
4、SpringMVC接受的参数是形参,无需定义成员变量,而struts2需要定义成员变量来接受
5、SpringMVC采用的是参数解析器解析Request域中的数据,最后再通过ModelAndView对象将数据存放到Request域中。而struts2采用的是值栈。

本文介绍了SpringMVC框架,一种与Spring无缝集成的控制层框架。文章详细解释了MVC模式的工作原理及其优势,并对比了SpringMVC与Struts2的主要区别。
833

被折叠的 条评论
为什么被折叠?



