SpringMVC与Servlet接口
Servlet接口规范
-
Servlet接口 定义servlet接口规范init, service, destroy
-
GenericServlet抽象类 实现Servlet实现了init 传入ServletConfig,调用自己的init。
并且用抽象service方法覆盖了父类service
-
HttpServlet抽象类 继承GenericServlet实现 了service方法,调用自己的servlce,
service内部调用了方法doGet,doPost,doPut,doDelete,doOptions,doTrace,
SpringFramework下的servlet实现
-
HttpServletBean抽象类 继承HttpServlet覆盖了init,内部 调用自己的intiServletBean
-
FrameworkServlet抽象类,继承了HttpServletBean1、覆盖了
service方法,添加了method=patch的处理,然后调用父类的service。在父类service内部会调用
doXXX方法2、而这里又覆盖了
doGet,doPost,doPut,doDelete,doOptions,doTrace方法3、另外覆盖了
destroy方法4、还覆盖了
initServletBean方法,这在父类init中调用在initServletBean中会调用
initWebApplicationContext,而InitWebApplicationContext内部会调用onRefresh方法
-
DispatcherServlet类 。继承了FrameworkServlet1、覆盖了
onRefresh方法。 这个内部就是加载了各中springMvc相关的组件。springMVC组件就是从这里来的,也就是在servlet初始化时加载 的
initMultipartResolver(context); initLocaleResolver(context); initThemeResolver(context); initHandlerMappings(context); initHandlerAdapters(context); initHandlerExceptionResolvers(context); initRequestToViewNameTranslator(context); initViewResolvers(context); initFlashMapManager(context);
总结一下
FrameworkServlet负责实现了servlet规范,init, service, destroy
DispatcherServlet 负责初始化springMVC相关组件
预留问题:
后续我们再看springMVC各组件的加载
