1.DispatcherServlet前端控制器(发送请求->)
为什么使用前端控制器的效果最后和servlet一样?
往底层走 DispatcherServlet继承了FrameworkServlet
public class DispatcherServlet extends FrameworkServlet
FrameworkServlet 又继承了 HttpServletBean
public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware
HttpServletBean 又继承了 HttpServlet
public abstract class HttpServletBean extends HttpServlet implements EnvironmentCapable, EnvironmentAware
springmvc只是分装了servlet 到DispatcherServlet中
2.根据映射器HandlerMapping发给Controller
public class BeanNameUrlHandlerMapping extends AbstractDetectingUrlHandlerMapping
public interface HandlerMapping
3.通过处理器 适配器,返回ModelAndView
继承的是适配器
public class SimpleControllerHandlerAdapter implements HandlerAdapter
并且会判断是否为处理器Controller
4. 视图解析器获取ModelAndView找到真正的视图
public class InternalResourceViewResolver extends UrlBasedViewResolver
继承了 基于URL视图解析器 去寻找真正的视图解析器
5.使用ModelAndView中的模型对视图进行渲染
创建了 ModelAndView 携带了参数
返回给前端视图渲染