MVC是什么?
MVC是把软件系统分为三个基本的部分,分别为:模型Model、视图View、和控制器Controller。
MVC框架模型
MVC框架模型,如下图所示:
1、Model模型(简称M)
表示业务规则,主要作用为数据的接受和发送设定规则,一般都是以 JavaBean 的形式进行定义的。
比如:代码中我们会写DAO和DTO类型的代码,那这个DAO和DTO我们可以理解为是属于Model层的代码。
2、View视图(简称V)
是指用户看到并与之交互的界面,视图层,就是UI界面,用于跟用户进行交互,一般所有的JSP、Html等页面就是View层。
3、Controller控制器(简称C)
控制层,Controller层的功能就是将Model和View层进行关联。
控制器本身不输出任何东西和做任何处理,它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
常见的MVC框架
比如大家使用较多的SpringMVC,其实就是MVC设计模式的一种体现。
这里我就以SpringMVC为例,工作流程如下图所示:
第一步:用户发送请求
用户发起请求到:前端控制器DispatcherServlet。
第二步:请求查询
前端控制器收到请求调用处理器映射器:请求处理器映射器HandlerMappering去查找处理器Handle,通过xml配置或者注解进行查找。
第三步:返回处理器执行链
找到以后处理器映射器:HandlerMappering,像前端控制器返回执行链:HandlerExecutionChain。
第四步:前端控制器调用处理器适配器
前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)。
第五步:处理器适配器去执行Handler
第六步:处理器执行完成并返回结果给前端控制器
Handler执行完给处理器适配器返回ModelAndView。
第七步:前端控制器接受到结果,并讲结果传给视图解析器
处理器适配器向前端控制器返回ModelAndView。
第八步:进行视图解析
前端控制器请求视图解析器(ViewResolver)去进行视图解析。
第九步:返回View
视图解析器像前端控制器返回View。
第十步:渲染
前端控制器对视图进行渲染。
第十一步:返回用户结果
前端控制器向用户响应结果。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》