关键字介绍
SpringMVC给加上@Controller的类取了个官方的名称:Hanlder。
DispatcherServlet[前端控制器]:拦截所有的用户请求。
HandlerMapping[处理器映射]:只负责解析URL,解析完成后,返回DispatcherServlet一个调用链,自己不会不负责调用。
调用链:可以理解为类的名字和路径。
HanlderAdapter[处理器适配器]:根据调用链来反射调用@Controller类的对应方法。
ViewResolver[视图解析器]:把Model和View进行分离。
View[视图]:做数据的渲染。
数据渲染:把数据和视图结合在一起,产生最终的HTML页面。
用户请求流程
SpringMVC处理数据的文字表述
1、浏览器访问"book/add"。
2、DispatcherServle[前端控制器]t拦截到这个请求。
3、DispatcherServlet把请求路径交给HandlerMapping[处理映射器]。
4、HandlerMapping会解析URL,并找到对应的@RequestMapping("xxx")。
5、HandlerMapping解析完成后会返回DispatcherServlet一个调用链,告诉DispatcherServlet接下 来怎么调用。
6、DispatcherServlet把调用链交给HanlderAdapter[处理器适配器]。
7、HanlderAdapter[处理器适配器]根据调用l链反射来调用@Controller类的对应方法。
8、无论@Controller的方法返回的什么类型的数据,HanlderAdapter都会转换为ModelAndView数 据,再交给DispatcherServlet。
9、DispatherServlet拿到数据后会把数据给到ViewResolver[视图解析器]。
10、ViewResolver把Model和View进行分离,再把分离后的结果交给DispatcherServlet。
11、DispatcherServlet收到数据后,会再把数据交给View[视图]进行渲染,View会把数据和视图结 合在一起,产生最终的HTML页面。
12、View把HTML页面转给DispatcherServlet,DispatcherServlet会再把页面返回给客户端。
SpringMVC处理数据的流程图