一、定义:

  MVC(model-view-controller)是一种设计模式,其中model表示的是应用的业务逻辑(通过javabean,EJB组件实现),view代表的是应用的表示面(通过jsp页面产生),controller是提供应用的处理过程控制(一般是一个servlet)。通过这种设计模式把逻辑应用,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。

 

二、目的:

  将 和 实现代码分离,从而使一个程序有不同的显示形式。例如,同一台电脑中文件夹的显示形式不同,但是内容并没有改变,达到了M和V的分离。

            

 

三、工作原理:

 流程解释:

1、客户端(浏览器)发送一个请求,直接请求到前端处理器;

 

2、前端处理器调用处理映射求,解析请求对应的handler;

 

3、解析到的处理器返回给前端处理器之后,直接请求到处理适配器由其处理;

 

4、处理适配器会根据处理器来调用真正的处理器处理,并处理相应的业务逻辑;

 

5、处理器处理完业务之后返回一个modelandview对象到前端处理器,Model 是返回的数据对象,View 是个逻辑上的 View;

 

6、视图解析器会逻辑view查找实际的view并返回一个view对象给前端处理器;

 

7、前端处理器把返回的model传给view进行渲染;

 

8、把view返回响应。


 组件说明:

  1、DispatcherServlet(前端控制器):Spring MVC 的入口函数。接收请求,响应结果,相当于转发器,中央处理器。是整个流程控制的中心,有效的降低了组件之间的耦合性。

 

  2、HandlerMapping(处理映射器):根据请求的url查找Handler,通过扩展处理器映射器实现不同的映射方式,如:配置文件方式,实现接口方式,注解方式等。

 

  3、HandlerAdapter(处理适配器):通过扩展处理器适配器,支持更多类型的处理器。

 

  4、handler(处理器):需要工程师开发,编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。在DispatcherServlet的控制下Handler对具体的用户请求进行处理。

 

  5、ViewResolver (视图解析器):进行视图解析,根据逻辑视图名解析成真正的视图(view)。

 

  6、view(视图):需要工程师开发。View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)。

 

四、优点和缺点:

优点:

   1、耦合性低:视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码。

   2、重用性高:MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型。比如用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。

   3、部署快,生命周期成本低

   4、可维护性高:分离视图层和业务逻辑层使得WEB应用更易于维护和修改。


缺点:

     1、完全理解有点困难

   2、调试困难

   3、不适合小型、中等规模的程序

   4、增加系统结构和实现的复杂性:对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

   5、视图与控制器之间过于紧密的连接并且降低了视图对模型数据的访问。

 

posted on 2020-05-18 20:03  小潘同学  阅读(152)  评论(0)    收藏  举报
-->