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各组件的加载
网友评论