以下便是MVC的过程模型图:
我们从图中可以看到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响应。