Spring mvc核心简述
用户每在web浏览器上点击一个链接或提交一个表单,就会产生一个请求。请求离开浏览器时,会携带用户发送请求的信息内容,至少携带着请求的url。
① 请求旅行的第一个停止点是 Spring的 DispatcherServlet。
在Spring MVC中,所有的请求都要经过这个前端控制器(DispatcherServlet)。
DispatcherServlet的工作是将所有的请求发送给Spring MVC的控制器(Controller)。
② 所谓控制器就是一个处理请求的 Spring组件。不过一个典型的应用程序可能会有多个控制器,DispatcherServlet需要知道请求应该发送给哪一个控制器。
因此,DispatcherServlet会查询一个或多个处理器映射,了解请求的下一个停止点是什么,处理器映射会根据请求携带的URL做出自己的决策。
③ 一旦 DispatcherServlet找到了一个控制器对象,它会将请求以适当的方法分派给这个控制器。在控制器上,请求将卸下其用户提交的信息,并等待控制器处理这些信息。
④ 实际上,一个设计良好的控制器自己只执行很少或者不执行处理工作,而是委托给一个或多个业务对象,让它们负责业务逻辑处理。
⑤ 完成业务逻辑后,一般会生成服务器响应的结果信息,这些信息被称为模型(model)。
⑥ 接着,控制器所做的最后一件工作,是将模型数据和视图名称打包到 ModelAndView对象中。然后,将ModelAndView对象捆绑的请求发送给DispatcherServlet。
顾名思义,ModelAndView不仅携带模型数据,还携带由哪个视图来呈现结果提示的。
⑦ 一旦ModelAndView被提交给DispatcherServlet,DispatcherServlet会要求一个视图解析器来协助查找实际的视图(jsp)。
现在,DispatcherServlet已经知道由哪个视图来渲染结果,请求工作也差不多完成了。最后一个停止点是被提交的模型数据到达的视图实现(可能是一个jsp)。
随着模型数据被提交给视图,请求的所有工作就完成了。视图会使用这些模型数据渲染一个页面,并通过响应对象返回给浏览器。

浙公网安备 33010602011771号