springmvc运行机制,运行机制的一部分相关知识

在通过spring框架开发web应用的时候,需要导入的包就有spring的核心包,还有spring-web,servlet-api,如下图所示:
springmvc运行机制,运行机制的一部分相关知识_第1张图片

处理httprequest的请求的时候是通过servlet来进行处理的,servlet是一个接口,有三个方法:init(),service(),destory(),看下图:
springmvc运行机制,运行机制的一部分相关知识_第2张图片
**而请求处理是org.springframework.web包下的DispactherServlet类来处理的springmvc运行机制,运行机制的一部分相关知识_第3张图片
**

**用户发送请求时会先从 DispathcherServler 的 doService 方法开始,在该方法中会将
ApplicationContext、localeResolver、themeResolver 等对象添加到 request 中,紧接着就是
调用 doDispatch 方法。
springmvc运行机制,运行机制的一部分相关知识_第4张图片
**
**然后调用 getHandler 方法来匹配每个 HandlerMapping 对象,如果匹配成功会返回这个
Handle 的处理链 HandlerExecutionChain 对象,在获取该对象的内部其实也获取我们自定定义
的拦截器,并执行了其中的方法
springmvc运行机制,运行机制的一部分相关知识_第5张图片
springmvc运行机制,运行机制的一部分相关知识_第6张图片
**

**通过上述获取到了 HandlerExecutionChain 对象,通过该对象的 getHandler()方法获得
一个 object 通过 HandlerAdapter 进行封装得到 HandlerAdapter 对象
springmvc运行机制,运行机制的一部分相关知识_第7张图片
**
**该对象调用 handle 方法来执行 Controller 中的方法,该对象如果返回一个 ModelAndView 给 DispatcherServlet
springmvc运行机制,运行机制的一部分相关知识_第8张图片
springmvc运行机制,运行机制的一部分相关知识_第9张图片
**
**DispatcherServlet借助ViewResolver完成逻辑试图名到真实视图对象的解析,得到View 后 DispatcherServlet 使用这个 View 对 ModelAndView 中的模型数据进行视图渲染

**
客户端的所有请求都交给前端控制器 DispatcherServlet 来处理,它会负责调用系统的其他模
块来真正处理用户的请求。
② DispatcherServlet 收到请求后,将根据请求的信息(包括 URL、HTTP 协议方法、请求头、
请求参数、Cookie 等)以及 HandlerMapping 的配置找到处理该请求的 Handler(任何一个对象
都可以作为请求的 Handler)。
③在这个地方 Spring 会通过 HandlerAdapter 对该处理器进行封装。
④ HandlerAdapter 是一个适配器,它用统一的接口对各种 Handler 中的方法进行调用。
⑤ Handler 完成对用户请求的处理后,会返回一个 ModelAndView 对象给 DispatcherServlet,
ModelAndView 顾名思义,包含了数据模型以及相应的视图的信息。
⑥ ModelAndView 的视图是逻辑视图,DispatcherServlet 还要借助 ViewResolver 完成从逻辑视
图到真实视图对象的解析工作。
⑦ 当得到真正的视图对象后,DispatcherServlet 会利用视图对象对模型数据进行渲染。
⑧ 客户端得到响应,可能是一个普通的 HTML 页面,也可以是 XML 或 JSON 字符串,还可以是一
张图片或者一个 PDF 文件

从牛客上面了解到,上面摘自牛客答案解析

你可能感兴趣的:(java,spring)