作为资深程序员,只会用SpringMVC框架是远远不够的,现在我带着大家去看SpringMVC的整体执行流程。
一、SpringMVC执行流程
如下图所示:
详细说明上图的执行流程:
用户通过在浏览器上访问的路径,发送出请求到前端控制器DispatcherServlet。
DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。
HandlerMapping找到具体的处理器(可查找xml配置或注解配置),生成处理器对象及处理器拦截器(如果有)封装成一个HandlerExecutionChain(执行链)
HandlerAdapter根据Handler信息找到对应的适配器(处理器适配器)。
HandlerAdapter经过适配调用具体的处理器(Handler/Controller)。
Handler执行完成返回ModelAndView对象。
HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet。
DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)。
ViewReslover解析后返回具体View(视图)。
DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
DispatcherServlet响应结果给用户。
特点
有清晰的角色划分:
中央调度器(DispatcherServlet):作为前端控制器,整个流程的控制中心,控制其它组件执行,同一调度。
处理器映射器(HandlerMapping):负责根据用户请求的 url 找到 Handler 处理器(Handler 是执行一个特定功能的函数)。
处理器适配器(HandlerAdapter):执行处理器。调用具体的方法对用户发来的请求来进行处理。
视图解析器(ViewResolver):解析 ModelAndView 。springmvc借助视图解析器得到最终将逻辑视图解析为视图对象
之所以有角色的划分是为了让程序能更好的解耦,提高程序的扩展性。
以上是springMVC执行流程和详细解说,以及所对应的重要角色,也做了大概说明,接下来对以上内容进行具体学习吧!
————————————————
版权声明:本文为CSDN博主「杨思默」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yangsimo/article/details/129465356