SpringMVC执行原理

发布时间 2023-03-24 00:37:57作者: 宇宙过河卒

Spring MVC的原理如下图所示:

当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制其,控制器处理请求,创建数据类型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者!

精细版SPRINGMVC执行原理

 

这个图是spring mvc 的一个完整的流程图,只有虚线才是我们要做的,实现部分都是spring mvc已经帮我们做了的。

 

简要的分析一下执行的流程:

1、DispatcherServlet表示前置的控制器,是整个spring mvc的控制中心,用户发出请求,DispatcherServlet接受请求并拦截请求

假设url为 http://localhost:8080/springmvc/hello 这个url就可以拆分成3个部分

http://localhost:8080 这是服务器的域名

springmvc部署在服务器上的web站点

hello 表示控制器

通过分析,如上url表示为:请求位于服务器localhost:8080 上的springmvc站点的hello控制器

2、HandlerMapping为处理器映射,由DispathcerServlet自动调用

HandlerMapping根据请求url的控制器去查找在springmvc-config.xml里面的Handler.

3、HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找的控制器为 hello

4、HandlerExecution 将解析后的信息传递给DispatcherServlet,如解析控制器映射等。

5、HandlerApdapter表示处理器适配器,其按照特定的规则去执行Handler.

6、Handler让具体的Controller执行

7、Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView.

8、HandlerAdapter将试图逻辑名或者模型传递给DispatcherServlet

9、DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名

10、试图解析器将解析的逻辑视图名传递给DispatcherServlet.

11、DispatcherServlet根据试图解析器解析后的视图结构,调用具体的视图

12、最终视图呈现给用户

SpringMVC

Spring MVC的原理如下图所示:

当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制其,控制器处理请求,创建数据类型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者!

image-20201225134657571

Spring MVC的原理如下图所示:

当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制其,控制器处理请求,创建数据类型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者!

 

image-20201225154309926

老师画的精细版SPRINGMVC执行原理,

image-20201225151715507

这个图是spring mvc 的一个完整的流程图,只有虚线才是我们要做的,实现部分都是spring mvc已经帮我们做了的。

 

 

简要的分析一下执行的流程:

1、DispatcherServlet表示前置的控制器,是整个spring mvc的控制中心,用户发出请求,DispatcherServlet接受请求并拦截请求

假设url为 http://localhost:8080/springmvc/hello 这个url就可以拆分成3个部分

http://localhost:8080 这是服务器的域名

springmvc部署在服务器上的web站点

hello 表示控制器

通过分析,如上url表示为:请求位于服务器localhost:8080 上的springmvc站点的hello控制器

2、HandlerMapping为处理器映射,由DispathcerServlet自动调用

HandlerMapping根据请求url的控制器去查找在springmvc-config.xml里面的Handler.

3、HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找的控制器为 hello

4、HandlerExecution 将解析后的信息传递给DispatcherServlet,如解析控制器映射等。

5、HandlerApdapter表示处理器适配器,其按照特定的规则去执行Handler.

6、Handler让具体的Controller执行

7、Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView.

8、HandlerAdapter将试图逻辑名或者模型传递给DispatcherServlet

9、DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名

10、试图解析器将解析的逻辑视图名传递给DispatcherServlet.

11、DispatcherServlet根据试图解析器解析后的视图结构,调用具体的视图

12、最终视图呈现给用户,