网站建设毕业设计中期报告,就诊网站建设协议,网站开发公司起名,psd模板 转 网站概要
SpringMVC是一种基于MVC#xff08;Model-View-Controller#xff09;框架的Web应用开发框架。下面是SpringMVC的详细执行流程。
客户端向DispatcherServlet发送请求。DispatcherServlet收到请求后#xff0c;根据HandlerMapping#xff08;处理器映射#xff09;找…概要
SpringMVC是一种基于MVCModel-View-Controller框架的Web应用开发框架。下面是SpringMVC的详细执行流程。
客户端向DispatcherServlet发送请求。DispatcherServlet收到请求后根据HandlerMapping处理器映射找到对应的Controller类。Controller类通过调用Service层中的方法来处理业务逻辑并返回ModelAndView对象。ModelAndView对象包含数据模型和视图名称DispatcherServlet调用ViewResolver来解析视图名称并找到对应的View类。View类负责渲染视图并将结果返回给DispatcherServlet。DispatcherServlet将响应发送给客户端。
整个执行流程如下
请求到达DispatcherServlet。DispatcherServlet根据HandlerMapping找到对应的Controller。Controller处理请求并返回ModelAndView。DispatcherServlet使用ViewResolver解析视图名称并找到对应的View。View渲染模型并返回结果。DispatcherServlet返回响应给客户端。
当然这只是SpringMVC的基本执行流程具体的流程可能因为用户的不同需求而有所不同。 我们也可以将整个流程分为三个阶段
准备阶段匹配阶段执行阶段
准备阶段 在 Web 容器第一次用到 DispatcherServlet 的时候会创建其对象并执行 init 方法 init 方法内会创建 Spring Web 容器并调用容器 refresh 方法 refresh 过程中会创建并初始化 SpringMVC 中的重要组件 例如 MultipartResolverHandlerMappingHandlerAdapterHandlerExceptionResolver、ViewResolver 等 容器初始化后会将上一步初始化好的重要组件赋值给 DispatcherServlet 的成员变量留待后用
匹配阶段 用户发送的请求统一到达前端控制器 DispatcherServlet DispatcherServlet 遍历所有 HandlerMapping 找到与路径匹配的处理器 ① HandlerMapping 有多个每个 HandlerMapping 会返回不同的处理器对象谁先匹配返回谁的处理器。其中能识别 RequestMapping 的优先级最高 ② 对应 RequestMapping 的处理器是 HandlerMethod它包含了控制器对象和控制器方法信息 ③ 其中路径与处理器的映射关系在 HandlerMapping 初始化时就会建立好 将 HandlerMethod 连同匹配到的拦截器生成调用链对象 HandlerExecutionChain 返回 遍历HandlerAdapter 处理器适配器找到能处理 HandlerMethod 的适配器对象开始调用
调用阶段 执行拦截器 preHandle 由 HandlerAdapter 调用 HandlerMethod ① 调用前处理不同类型的参数 ② 调用后处理不同类型的返回值 第 2 步没有异常 ① 返回 ModelAndView ② 执行拦截器 postHandle 方法 ③ 解析视图得到 View 对象进行视图渲染 第 2 步有异常进入 HandlerExceptionResolver 异常处理流程 最后都会执行拦截器的 afterCompletion 方法 如果控制器方法标注了 ResponseBody 注解则在第 2 步就会生成 json 结果并标记 ModelAndView 已处理这样就不会执行第 3 步的视图渲染