2019-10-14 SpringMVC与Servlet接口 Servlet接口规范

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 抽象类,继承了HttpServletBean

    1、覆盖了service方法,添加了method=patch的处理,然后调用父类的service。

    在父类service内部会调用 doXXX方法

    2、而这里又覆盖了doGet,doPost,doPut,doDelete,doOptions,doTrace方法

    3、另外覆盖了destroy方法

    4、还覆盖了initServletBean方法,这在父类init中调用

    在initServletBean中会调用 initWebApplicationContext,而InitWebApplicationContext内部会调用 onRefresh方法

  • DispatcherServlet 类 。继承了FrameworkServlet

    1、覆盖了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各组件的加载

你可能感兴趣的:(2019-10-14 SpringMVC与Servlet接口 Servlet接口规范)