MVC:
M(Model)模型:理解为与数据库交互部分,主要进行数据逻辑处理,也就是进行数据的CURD操作。
V(View)视图:数据显示部分,将数据以何种方式显示给用户,页面展示。
C(Controller)控制器:处理用户交互部分,通过从视图读取数据,控制用户的输入,将数据发送给模型处理。一般是我们定义接口的地方,根据URL定位到不同的方法中,获取不同的数据,进行不同的操作。
在理解MVC流程之前需要先知道几个概念:
1、 前端控制器(DispatcherServlet;中央控制器;MVC的核心)
在web.xml中配置,DispatcherServlet是整个流程控制的核心,由它调用其他组件处理用户的请求,降低了组件之间的耦合度。
作用:接收请求,响应结果,相当于转发器,中央处理器,减少其他组件之间的耦合度。
2、 处理器映射器(HandlerMapping)
HandlerMapping负责根据用户请求找到Handler(处理器),SpringMVC提供了不同的映射器实现不同的映射方法。如:配置文件方式、实现接口方式、注解方式
作用:根据请求的url查找Handler
3、 处理器(Handler;后端开发,controller,service,dao)
Handler是继DispatcherServlet前端控制器和后端控制器,在DispatcherServlet的控制洗啊,Handler对具体的用户请求进行的处理。
4、 处理器适配器(HandlerAdapter)
按照特定的规则(HandlerAdapter要求的规则)去执行Handler
5、 视图解析器(ViewResolver)
负责将处理结果生成view视图,对view进行视图解析渲染处理通过页面展示给用户。
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
6、视图( View;jsp,vue)
经过渲染处理展示给用户的页面
一个完整的MVC流程:
1、用户发送请求到前端控制器(DispatcherServlet);
2、前端控制器(DispatcherServlet)请求处理器映射器(HandlerMapping)查找处理器(Handler);
3、处理器映射器(HandlerMapping)将查找到的处理器(Handler),返回给前端控制器(DispatcherServlet);
4、前端控制器(DispatcherServlet)接收到处理器(Handler),然后调用处理器适配器(HandlerAdapter),执行处理器(Handler);
5、处理器(Handler)执行完成会返回给处理器适配器一个ModelAndView;
6、处理器适配器(HandlerAdapter)将接收到的ModelAndView返回给前端控制器(DispatcherServlet);
7、前端控制器(DispatcherServlet)接收到ModelAndView后,调用视图解析器(ViewResolver),进行视图解析;
8、视图解析器(ViewResolver)向前端控制器(DispatcherServlet)返回视图(View);
9、前端控制器(DispatcherServlet)对视图(View)进行渲染视图;
10、前端控制器(DispatcherServlet)向用户响应结果。