Spring MVC工作原理

一、用户发磅请求,web.xml中servlet-mapping映射到DispatcherServlet

二、DispatcherServlet调用doService->doDispatch,
1、通过HandlerMapping找到对应的handler,并构建一个HandlerExecutionChain,它包含handler和HandlerMapping本身的一些拦截器,返回给DispatcherServlet。
HandlerMapping接口实现:
  • BeanNameUrlHandlerMapping:通过对比url和bean的name找到对应的对象
  • SimpleUrlHandlerMapping:也是直接配置url和对应的bean,比BeanNameUrlHandlerMapping功能更多
  • RequestMappingHandlerMapping:针对注解@RequestMapping
2、通过HandlerAdapter找到对应访问的方法,调用handler对应的方法,并将返回值ModelAndView返回给DispatcherServlet
HandlerAdapter接口实现:
  • HttpRequestHandlerAdapter:要求handler实现HttpRequestHandler接口,该接口方法为void handleRequest(HttpServletRequest request, HttpServletResponse response)
  • SimpleControllerHandlerAdapter:要求Handler实现Controller接口,访接口的方法为ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse)
  • RequestMappingHandlerAdapter:和上面的RequestMappingHandlerMapping配对使用,针对@RequestMapping

ModelAndView类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便您一次返回这两个对象的holder,其中Model以Map形式存放

三、DispatcherServlet通过ViewResolver完成视图解析

四、DispatcherServlet使用Model完成视图渲染,并将结果返回给客户端


Spring MVC工作原理

参考:
http://www.360doc.com/content/14/1024/23/18637323_419613178.shtml