bodogWrapper

bodogWrapper

  ? ? Tomcat中梳共拥有四种容器:engine(伸擎),host(主机),context(左右文)和wrapper(包装器)。在前面的章节里也伸见了何以确立己己己的context和wrapper。壹个左右文普畅通带拥有壹个容好多个包装器,每壹个包装器体即兴壹个servlet。本章将会看到Catalina中Wrapper接口的规范完成。比值先伸见了壹个HTTP央寻求会提示的壹bodog方法,接上伸见了javax.servlet.SingleThreadModel接口。最末伸见了bodogWrapper和bodogWrapperValve类。

  方法调用前言列

  关于每壹个衔接,衔接器邑会调用相干容器的invoke方法。接上容器调用它的所拥有儿子容器的invoke方法。比如,假设壹个衔接器跟壹个StadardContext实例相相干,这么衔接器会调用bodogContext实例的invoke方法,该方法会调用所拥有它的儿子容器的invoke方法

  

  ? ? 1、衔接器创立央追言和照顾对象

  ? ? 2、衔接器调用bodogContext的invoke方法

  ? ? 3、bodogContext的invoke方法必须调用该左右文容器的流动水线的invoke方法,因此bodogContext的流动水线会调用bodogContextValve的invoke方法

  ? ? 4、bodogContextValve的invoke方法违反掉落适宜的包装器到来对央寻求终止效力动并调用包装器的invoke方法

  ? ? 5、bodogWrapper是包装器的规范完成,bodogWrapper对象的invoke方法调用流动水线的invoke方法。

  ? ? 6、bodogWrapper流动水线的根本阀门是bodogWrapperValve。故此bodogWrapperValve的invoke方法会被调用。bodogWrapperValve的invoke方法会调用包装器的allocate方法得到壹个servlet的实例。

  ? ? 7、当壹个servlet需寻求被加以载的时分,方法allocate调用方法load到来加以载壹个servlet

  ? ? 8、方法load会调用servlet的init方法

  bodogContext类的构造函数设置bodogContextValve实例为它的根本阀门

  

  bodogWrapper类的构造函数将bodogWrapperValve干为它的根本阀门

  

  SingleThreadModel

  壹个servlet却以完成javax.servlet.SingleThreadModel接口,完成此接口的壹个servlet深雕刻称为SingleThreadModel(STM)的以次组件。根据Servlet规范,完成此接口的目的是保障servlet壹次不得不拥有壹个央寻求。

  假设壹个Servlet完成此接口,将保障不会拥有两个线程同是运用servlet的service方法。 servlet容器却以保障同步进入壹个servlet的壹个实例,或护持的Servlet实例池和处理每个新央寻求。该接口并不能备止同步而产生的效实,如拜候动态类变量或该servlet以外面的类或变量。


上一篇:bodog帮岛,壹场凹隐秘梦境的暖和带天堂之旅

下一篇:没有了