×
新网 > 虚机资讯 > 正文

浅析Tomcat之Container

  • 作者:未知
  • 来源:
  • 2018-05-15 15:40:26

Container是容器接口.我们知道请求到达连接器,经过一些预处理,调用容器的方法.来真正地处理请求.Container也就是servlet容器是用来处理请求servlet资源,并为Web客户端填充response对象的模块.在Tomcat中有4种类型的容器.分别是Engine,Host,Context,Wrapper. org.apache.catalina.Container这个接口有着很详

Container是容器接口.我们知道请求到达连接器,经过一些预处理,调用容器的方法.来真正地处理请求.Container也就是servlet容器是用来处理请求servlet资源,并为Web客户端填充response对象的模块.在Tomcat中有4种类型的容器.分别是Engine,Host,Context,Wrapper. org.apache.catalina.Container这个接口有着很详细的类注释,基本上都把它的作用给说的很清楚.大意是容器是可以执行从客户端收到的请求.并根据这些请求返回响应对象,它支持管道阀门.这里说的管道是org.apache.catalina包下的Pipeline而阀门指的是Value.对于容器接口它的4个概念层次分别是: Engine:表示Tomcat的整个Servlet引擎. Host:表示包含一个或者多个Context容器的虚拟主机 Context:表示一个Web应用程序. Wrapper:表示一个独立的Servlet. 这4个接口的都有一个标准的实现,对应于org.apache.catalina.core下的StandardEngine,StandardHost,StandardContext和StandardWrapper.有一点需要注意的是Container的实现类都继承自ContainerBase抽象类. 此外ContainerBase也是继承自LifeCycle的类层次.因此它也必须实现一些生命周期方法.这些方法可以让StandardService等对其进行生命周期的管理.

002UASMrzy7605pjKJv15&690.jpg

public void invoke(Request request, Response response) throws IOException, ServletException { pipeline.getFirst().invoke(request, response); } 上述是ContainerBase的invoke方法.也就是连接适配器转发请求所调用的方法.可以很清楚的看出这个调用是委托给pipeline里面的阀来执行的.后续将对StandardPipeline进行解读.此外容器还包含了一些组件如日志组件(Logger),管理器(Manager),领域(Realm)和资源(Resources).

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading