体系结构:Spring MVC是基于Model2实现的技术框架,从接受请求到返回响应,Spring MVC框架的众多组件通力合作,各司其职,有条不紊的完成分配的工作。在整个框架中,DispatcherServlet处于核心位置,它负责协调和组织不同的组件以完成请求处理并返回响应的工作。和大多数Web MVC框架一样,Spring MVC通过一个前端Servlet接受所有的请求,并将具体工作委托给其他组件进行处理,DispatcherServlet就是SpringMVC的一个前端Servlet。
1. 整个过程始于客户端发出的请求,web应用服务器接收到这个请求,如果匹配DispatcherServlet的请求映射路径,则web容器将该请求转交给DispatcherServlet处理。
2. DispatcherServlet接收到这个请求以后,将根据请求信息及HandlerMapping的配置找到处理请求的处理器(Handler)。可将HandleMapping看做路由控制器,将Handle看做目标主机。
3. 当DispatcherServlet根据HandleMapping得到一个当前请求的Handler以后,通过HandleAdapter对Handle进行封装,再以统一的适配器接口调用Handler。
4. 处理完业务逻辑的处理以后,将返回一个ModelAndView 给DispatcherServlet。
5. ModelAndView中包含的逻辑视图并非真正的视图对象,DispatcherServlet借助ViewResolve完成逻辑视图到真实视图对象的解析工作。
6. 当得到真实的视图对象以后,将使用view对象对这个ModelAndView进行数据模型视图渲染。
7. 最终客户端得到的可能是一个普通的HTML页面,也可能是一个XML或者JSON串,甚至是一张图片或一个PDF文档等不同的媒体格式。