likes
comments
collection
share

SpringMVC的原理和工作流程

作者站长头像
站长
· 阅读数 11

springmvc总流程

SpringMVC的原理和工作流程

1,用户发送请求,url为http://localhost:8080/hello

这是用户的起始动作,他发送了一个HTTP请求,并将其URL指向你的应用程序。URL是一种标识资源的方式 ,它可以告诉应用程序用户想访问哪个页面或执行哪个功能。

SpringMVC的原理和工作流程

2,DispatcherServlet前端控制器接收并且拦截请求,传url给HandlerMapping

DispatcherServlet 是 SpringMVC 中的前端控制器,所有的请求都会先经过它进行处理。“拦截”指的是 DispatcherServlet 是首先捕获并处理请求的能力,在此过程中还会处理前端逻辑。一旦 DispatcherServlet 捕获了请求,它就会把请求中包含的 URL 传递给后续的 HandlerMapping 进行处理映射。

SpringMVC的原理和工作流程

3,HandlerMapping为处理映射器,接收url并且根据url查找Handler

HandlerMapping 调用 URL 映射策略来查找和匹配用户请求对应的处理器(Handler)对象。也可以理解为,在 MVC 架构中,HandlerMapping 的作用是帮助用户请求找到相应的处理器。

SpringMVC的原理和工作流程

4,HanderExecution为具体的Handler,他的作用就是根据url查找控制器,以上他查找到的控制器为url中的“hello”,解析完成之后就将结果返回给DispathcherServlet

再找到适当的 Handler 后,HandlerExecution 负责实际地执行业务处理逻辑,即该 Handler 中的方法。如果业务逻辑存在返回结果(比如需要跳转页面或者返回数据等),那么这些结果将被传回给 HandlerAdapter。

SpringMVC的原理和工作流程

5,HandlerAdapter是处理器适配器,其作用就是执行Handler

HandlerAdapter 将 Handler 的返回结果解析成 ModelAndView(模型和视图)。此外,HandlerAdapter 还处理当前控制器上关于Locale和主题的部分,并将其应用到 "模型" 对象中。

SpringMVC的原理和工作流程

6,具体的Handler交给Controller去执行

Controller 就是一个简单的 Java 类,它作为 MVC 架构中的 C(控制器)来处理用户请求。它接收数据(HTTP 请求)并返回响应结果(HTTP 响应)。Controller 处理请求的具体过程大致包括:获取请求参数、验证请求参数、调用服务方法以及封装响应结果等。

SpringMVC的原理和工作流程

7,Controller将执行的结果返回给HandlerAdapter,如ModelAndView

一旦 Controller 处理完请求并安排好视图呈现以及其他返回数据的功能,他们会通过一个 ModelAndView 模型,向 HandlerAdapter 传递请求处理结果。

SpringMVC的原理和工作流程

8,ViewResolver是视图解析器,DispatcherServlet调用视图解析器去解析HandlerAdapter返回的逻辑视图

视图解析器实现了逻辑视图名称(在Controller中添加的)到实际视图(视图文件)的解析。在执行程序检索成功后,它将对请求完成响应,也就是说,会呈现所需的结果。

SpringMVC的原理和工作流程

9,视图解析器解析完成之后返回结果(逻辑视图名)给DispatcherServlet

SpringMVC的原理和工作流程 SpringMVC的原理和工作流程 解析结果为:

/WEB-INF/jsp/test.jsp

10,DispatcherServlet根据逻辑视图名调用具体的View

DispatcherServlet用ModelAndView模型接收JSP页面的输出内容,并使用视图解析器(ViewResolver),定位特定于应用程序的URI并控制返回响应。接下来,这个最终结果将被展示给客户端浏览器。

SpringMVC的原理和工作流程

11,将最终视图呈现给用户

SpringMVC的原理和工作流程 SpringMVC的原理和工作流程

希望以上介绍能让大家对 Spring MVC 的工作流程有更深刻的理解和认识。Spring MVC 是一个功能强大且易于使用的 Web 框架,可以实现灵活、可扩展、高效的 Web 应用程序开发,从而帮助开发人员在开发过程中提高生产力和代码质量。同时,我们也应该注意遵循 Spring MVC 设计原则,充分利用其提供的强大功能和优化性能的能力,以创建更好的应用程序。