Spring MVC前端
1. MVC浏览器
MVC思想是将系统的各个组件进行分类,不一样的组件扮演不的角色。而后将系统中的各个组件分离到不一样的层中,这些组件被严格限制在其所在层内。同层中组件应该保持内聚性,且大体处于同一抽象级别,而各层之间则以松耦合的方式组合在一块儿,从而保证了良好的封装性。MVC将一个应用的输入、处理和输出安装Model(模型)、View(视图)和Controller(控制器)三部分进行分离,这样一个应用就能够划分为模型层、视图层和控制层。3个层之间以最小的耦合来协同工做,从而提升了应用系统的可扩展性和维护性。架构
Model(模型)。模型层表明的数据和业务逻辑,它控制着对数据的处理和更新,通常状况下业务处理的过程对于视图层和控制层都是黑箱操做,模型层接受视图的请求数据,并返回最终的处理结果去更新视图层。app
View(视图)。视图层其实就是模型层各个模型的具体表现形式,它经过获得数据,而后再根据需求来显示他们。虽然视图层不对数据进行处理,可是他传输到控制层的数据需和模型层的数据类型一致,便是模型数据发生变化时,视图层也随之变化。ide
Controller(控制器)。控制层在MVC模式中链接视图层和模型层,它就是将视图层的交互信息进行过滤等处理以后,在传送到模型层相应的业务逻辑处理程序进行处理。在WEB应用中,视图层先给控制层发生消息请求(GET、POST..),控制层接收到请求以后不作任何处理,而是把请求消息传递给模型作业务处理。最终根据模型层产生的结果。控制层给浏览器(用户)更新相应的视图显示。
spa
图2-5 MVC三层关系orm
2. MVC特色blog
(1)低耦合性。架构分为三层,下降了各层之间的额耦合,易于程序的可扩展性和维护性。图片
(2)一模多视。一个模型能够对应多个视图,提升了代码的可维护性,一旦模型发生变化,方便修改程序。get
(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根据视图名找到相应的视图并返回给客户端(浏览器)。