MVC框架模式与SpringMVC框架

框架通常是代码重用,而设计模式是设计重用。

框架的介绍:https://blog.csdn.net/qq_36827957/article/details/78515403

MVC: Model View Controller 模型-视图-控制器

视图:用户看到并与之交互的界面。

模型:表示企业数据和业务规则。在MVC的3个部件中,模型拥有最多的处理任务。被模型返回的数据是独立的,与数据格式无关。这样的一个模式能够为多个视图提供数据,这样一来模型的代码只需要写一次便能够被多个视图重用,减少了代码的重复性。

控制器:接受用户的输入并调用相应的模型和视图来完成用户的需求,所以当用户点击web页面中的超链接和发送表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并根据请求来调用哪个模型去处理请求,然后在决定用哪个视图来显示返回的数据

SpringMVC框架

1.1 SpringMVC简介

springMVC框架是基于Java的实现了MVC框架模式的请求驱动类型的轻量级框架。前端控制器是DispatcherServlet接口实现类,映射处理器是HandlerMapping接口实现类,视图解析器是ViewResolver接口实现类,页面控制器是Controller接口实现类。SpringMVC的工作流程图如下:img

(1)客户端请求提交到前端控制器DispatcherServlet;
(2)前端控制器DispatcherServlet查找一个或者多个映射处理器HandlerMapping,从而确定调用哪个页面控制器Controller对请求进行处理;
(3)DispatcherServlet将请求提交给Controller;
(4)Controller根据业务逻辑对请求进行处理,并返回ModelAndView;
(5)DispatcherServlet查找一个或者多个ViewResolver,得到ModelAndView指定的视图view,并将model中的数据传入视图view中进行渲染;
(6)DispatcherServlet将渲染后的视图返回响应;

由上述过程可见,DispatcherServlet是Spring MVC的核心,它负责协调SpringMVC的各个组成部分对所有的Http请求进行处理,其主要工作如下:
(1)截获符合特定格式的Http请求;
(2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久层的WebApplicationContext关联起来;
(3)初始化Spring MVC的各个组件,并装配到DispatcherServlet中;

1.2 SpringMVC框架中的接口

DispatcherServlet接口:Spring提供的前端控制器,所有的请求都是由它来进行分发。在DispatcherServlet将请求分发到对应的Controller之前,需要借助Spring提供的HandlerMapping才能定位到相应的Controller.

HandlerMapping接口:完成客户请求到Controller的映射。

Controller接口:需要为并发用户处理请求,在实现Controller接口时,必须保证线程安全且可重用。
在Controller完成用户请求的处理,返回ModelAndView对象给DispatcherServlet,ModelAndView对象中包含了模型Model和视图View。
从宏观角度进行考虑,DispatcherServlet是整个Web应用的控制器;从微观角度进行考虑,Controller是单个Http请求处理过程的控制器。

ViewResolver接口:根据ModelAndView对象在web应用查找view视图,并将model中是数据传入到view视图中进行渲染。

1.3 SpringMVC框架优势

(1)角色清晰,分工明确,进行更简介的web开发;
(2)和其他Spring框架无缝集成;
(3)强大的JSP标签库;
(4)HandlerMapping, ViewResolver等能够简单地进行定制;