Spring MVC
1. MVC
MVC思想是将系统的各个组件进行分类,不同的组件扮演不的角色。然后将系统中的各个组件分离到不同的层中,这些组件被严格限制在其所在层内。同层中组件应该保持内聚性,且大致处于同一抽象级别,而各层之间则以松耦合的方式组合在一起,从而保证了良好的封装性。MVC将一个应用的输入、处理和输出安装Model(模型)、View(视图)和Controller(控制器)三部分进行分离,这样一个应用就可以划分为模型层、视图层和控制层。3个层之间以最小的耦合来协同工作,从而提高了应用系统的可扩展性和维护性。
Model(模型)。模型层代表的数据和业务逻辑,它控制着对数据的处理和更新,一般情况下业务处理的过程对于视图层和控制层都是黑箱操作,模型层接受视图的请求数据,并返回最终的处理结果去更新视图层。
View(视图)。视图层其实就是模型层各个模型的具体表现形式,它通过得到数据,然后再根据需求来显示他们。虽然视图层不对数据进行处理,但是他传输到控制层的数据需和模型层的数据类型一致,即是模型数据发生变化时,视图层也随之变化。
Controller(控制器)。控制层在MVC模式中连接视图层和模型层,它就是将视图层的交互信息进行过滤等处理之后,在传送到模型层相应的业务逻辑处理程序进行处理。在WEB应用中,视图层先给控制层发生消息请求(GET、POST..),控制层接收到请求之后不做任何处理,而是把请求消息传递给模型做业务处理。最终根据模型层产生的结果。控制层给浏览器(用户)更新相应的视图显示。
图2-5 MVC三层关系
2. MVC特点
(1)低耦合性。架构分为三层,降低了各层之间的额耦合,易于程序的可扩展性和维护性。
(2)一模多视。一个模型可以对应多个视图,提高了代码的可维护性,一旦模型发生变化,方便修改程序。
(3)分离性。模型返回的数据与现实分离,返回的数据可以选用任何一种显示技术,各层之间只负责自己的任务。
3. Spring MVC
Spring MVC顾名思义也是MVC,只是它是建立在Spring基础之上。如图2-6所示。
图2-6 Spring MVC原理图
Spring MVC的工作流程:
(1)客户端(浏览器)向Spring发起请求。
(2)请求被前端控制器(DispatcherServlet)所拦截,再寻找相应的映射处理器(Handle Mapping)来处理这次请求。
(3)DispatcherServlet根据Handle Mapping选择某个的控制器(Controller)。
(4)确定具体的Controller之后,DispatcherServlet将请求传递给已选择的控制器,该控制器处理请求,并将处理的最终结果返回给DispatcherServlet。
(5)DispatcherServlet使用视图解析器(ViewResolver)解析接收到的模型数据,并确定要返回的逻辑视图名。
(6)DispatcherServlet根据视图名找到相应的视图并返回给客户端(浏览器)。
本文出自 “你是ITer为bug而活” 博客,请务必保留此出处http://king2.blog.51cto.com/8746235/1656828
原文地址:http://king2.blog.51cto.com/8746235/1656828