DispatcherServlet:前端控制器,也是整个架构的核心,负责处理和分发请求。
HandlerMapping:处理器映射,他主要包含的是控制器的列表,对于特定的请求,根据HandlerMapping的映射关系,可以找到特定的控制器。最简单的便是url到控制器的映射。
HandlerAdapter:对于不同类型的控制器,该类负责把Handler请求处理的结果统一转换成ModelAndView。
ModelAndView:包含数据和视图的信息,一般包含视图名,和这个视图需要用的数据,这里的Model大家不要误会为模型的概念,它只不过同时包含视图信息及这个视图需要显示的相关信息而已。
ViewResolver:它View名称解析成View对象。
View:定义response显示的详细内容。
1. getHandler 其实就是取 Controller的实现类,(对应的是STRUTS中的*Action);
这里的handlerMappings 就是我们在SPRING 配置文件中配置的 handlerMapping实现类的集合;
这个方法中采用循环的方式去解析客户的URL请求;
2.getHandlerAdapter 方法类似的;handlerAdapters是配置在spring 配置文件中的handlerAdapter实现类的集合;也是一样的采用循环的方式去判断 handlerAdapter的实现类是否可以处理Controller的实现类,如何可以处理就返回该handlerAdapter的实现类;
3.ModelAndView mv = ha.handle(request, response, handler);
这一步由HandlerAdapter 的实现类 来执行handle(request, response, handler)方法;
总结:第一个函数handlerMapping解析URL请求,指向具体的Controller实现类
第2,3函数,SPRING 调用具体的Controller实现类来执行用户请求;
4 . 第四步render(ModelAndView , HttpServletRequest , HttpServletResponse )
又是循环查找ViewResolver 的实现类来处理