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根据试图解析器解析后的视图结构,调用具体的视图
SpringMVC
Spring MVC的原理如下图所示:
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、最终视图呈现给用户,