咱们暂且将该MVC框架称为BasicMVC框架。web
因为咱们正在BasicMVC框架,是基于咱们前面写的BasicIoc内核实现的。因此必须依赖BasicIoc内核。所谓咱们称BasicMVC框架是basicIoc框架的子框架。api
在BasicMVC框架的实现以前,先咱们要先理解MVC的含义。框架
MVC全称:model-view-cotroller.就是:模型-视图-控制器。spa
从字面上能够看到是一个Web请求到调用后台逻辑代码的过程。意思就是从页面访问后台逻辑代码时,遵照(模型-视图-控制器-逻辑处理代码)的流程。设计
说白了,就是建议,咱们不要在视图中编写后台逻辑代码,视图只写视图的标签,全部逻辑代码交予后台处理,视图与后台的代码的跳转以及数据的封装(表单数据to实体类)都在控制器作完。xml
因此说:MVC是一个在Web程序设计中,实现视图代码和后台逻辑代码分离的设计思想。对象
那么根据MVC的设计思想能够得出,MVC框架的流程是:blog
1. 一个请求访问JavaWeb的程序,必须进入到JavaWeb程序的入口web.xml字符串
2. 咱们在web.xml配置一个核心控制器拦截全部的请求io
3. 而后核心控制器根据请求和执行方法的配置(可使用注解也可使用XML),找到要执行的方法
4. 执行方法执行后返回一个视图的映射(能够经过一个字符串或者自定义类实现)
5. 根据视图映射与视图路径的关系跳转回到视图。
以下图所示:
|
经这么一分析,发现任何MVC框架,实现的流程都是大同小异的。发现了没,哈哈哈,哈哈哈!
根据以上流程,我根据本身的逻辑,对框架BasicMVC子框架,作出如下设计。
|
定义一个核心控制器,名为DispacherServlet,核心控制器首先实现:
(1)启动JavaWeb项目时,将程序全部的对象使用Ioc内核的机制加载到容器池里面。
咱们必须在Web启动是建立一个ApplicationContext容器操做对象;
咱们必须须要一个配置类,来得到建立容器的信息
(2)在请求调用执行方法,那么咱们须要指定请求路径和方法的关系。
我定义一个@RequestMaping注解来指定它们的关系
(3)方法执行后,返回视图映射,我使用字符串对应视图路径的方式来实现。
实现以上三步。一个基础的MVC框架就完成。咱们就要代码来一块儿实现它吧!