Spring Web MVC 原理学习(上)

一、Web的MVC框架

先来简单了解一下Web的MVC框架:

                          

         MVC,大概分为三个部分,controller,view,model。从图中可以看出,controller协调model和view。model和view不直接作用彼此。controller是我们一开始访问页面的接口,也就是说我们的我们页面的地址和业务数据都需要从controller中获得。这样就能推想,我们的springMVC实现原理,一开始也是先要找到 controller这个类,然后从controller类中获得view的地址和业务数据,然后再根据一些api,生成view和model完整组合的页面。返回给客户端。

注意:SpringMVC是基于请求驱动(指的就是使用请求-响应模型)的Web框架,也就是它是单向性的,客户端输入网址访问时才会对页面造成影响,反之不能。

 

二、SpringMVC实现原理

 

         那么SpringMVC是怎么工作的呢?我们先来了解一下服务到工作者模式,即前端控制器+应用控制器+页面控制器+上下文,这个也是Web MVC 模型,只是将职责更加明确了。

                     

Spring Web MVC 也是服务到工作者模式的实现,但进行可优化。

 

Spring MVC处理请求的流程图:

                      

1.认识几个类:

         前端控制器是 DispatcherServlet;应用控制器其 实拆为处理器映射器(HandlerMapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/  处理器为 Controller 接口(仅包含 ModelAndViewhandleRequest(request, response) 方法)的实现(也可以 是任何的 POJO 类)。

 

2.Spring MVC 原理图

                        

 

说明:

         值得一说的是,HandlerMapping运用策略模式,使之很容易添加新的映射策略;HandleAdpter将处理器包装为适配器,从而支持多种类型的处理器从而支持多种类型的页面控制器,是适配器设计模式的应用。View Resolver并不知道具体的模板页面是什么,应用策略模式,可以很容易的去切换其他视图技术。这些都可以看到SpringMVC 的强大之处,职责分明,灵活性高。

 

三、小结

 

         Spring Web MVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动基于请求驱动指的就是使用请求-响应模型类型的轻量级 Web 框架。学习一样东西,必须要知道它最基本的实现原理,要不然,在项目过程中,一旦出错,就手足无措了。与大家共勉。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值