Spring MVC是基于MCV(Model、View和Control)模型,利用处理器分离模型、视图和控制,以便达到不同层之间松散耦合的效果,提高系统的可重用性、维护性和灵活性。
以下便是MVC的过程模型图:
image我们从图中可以看到DispatcherServlet是Spring MVC框架的核心,负责协调和组织不同的组件以完成处理并返回响应的工作。
下面我们来简单阐述一下用户发出http请求时,SpringMVC做了什么事情:
-
用户在客户端输入http请求,Web服务器接收该请求,如果在
web.xml
中匹配DispatcherServlet的请求映射路径,Web容器则将该请求转发给DispatcherServlet进行处理。 -
DispatcherServlet接收用户请求后,将根据请求的信息及HandlerMapping的配置找到处理请求的处理器(Handler)。可将HandlerMapping看作路由控制器,将Handler看作目标主机。
-
当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。
-
处理器完成业务逻辑的处理后将返回一个ModelAndView(视图逻辑名和模型数据信息)给DispatcherServlet.
-
ModelAndView中包含的是逻辑视图名,而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真正视图对象的解析工作。
-
当得到真实的视图对象View后,DispatcherServlet就使用View对象对ModelAndView中的模型数据进行视图渲染。
-
最终将View中的内容(HTML,JSON等媒体形式)返回给用户,作为Http响应。
网友评论