美文网首页
2019-10-14 SpringMVC与Servlet接口 S

2019-10-14 SpringMVC与Servlet接口 S

作者: 杨浩0712 | 来源:发表于2019-10-15 00:04 被阅读0次

    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接口 S

          本文链接:https://www.haomeiwen.com/subject/avfjmctx.html