zoukankan      html  css  js  c++  java
  • tomcat容器

    tomcat连接器HttpConnector处理客户端的socket,最后会通过HttpProcessor调用connector.getContainer().invoke(request, response)处理请求;

    这里的container就是tomcat容器。

    tomcat容器有4种:

    1:Engine:表示整个 Catalina 的 servlet 引擎

    2:Host:表示一个拥有数个上下文(context)的虚拟主机

    3: Context:表示一个 Web 应用,一个 context 包含一个或多个 wrapper

    4:Wrapper:表示一个独立的 servlet 

    这运行时处理客户端的请求的流程如下图

    开端:
    在CoyoteAdapter的service方法里,由下面这一句就进入Container的。
    connector.getContainer().getPipeline().getFirst().invoke(request, response);  
    是的,这就是进入container迷宫的大门,欢迎来到Container。

    上图所示 有4个流水线(Pipeline)分别是上面4个容器的流水线,处理过程

    1:engine的流水线经过valveA和ValveB两个阀门(看作流水线上的2个工人)处理,最后到engineValve, 这个流水线完毕。完毕的时候engineValve这个工人

    会把请求转给他的直接子容器(直接下属)Host的流水线上。

    2:同上,Host流水线的处理流程跟1一样。最后由HostValve这个工人把请求发给他的直接下属Context的流水线上。

    3:同上,Context流水线最后由ContextValve这个工人把请求发给他的直接下属Wrapper的流水线上。

    4: Wrapper流水线最终处理请求,通过请求参数判断请求的是哪个Wrapper,图上是请求的是WrapperC

    WrapperC可以看作是一个servlet,通过这个servlet处理请求。整个请求过程完毕。

  • 相关阅读:
    MFC TeeChart 用法整理二 (画二维图)
    CFileFind类的详解以及应用实例
    error C2065: 'AfxCriticalTerm' : undeclared identifier 解决办法
    error LNK2001
    ShellExecute详细用法(可以单独打开一个文件)
    java连接SQL Server数据库
    Java 异常处理
    eclipse 无法自动匹配
    Java简单的表格模型
    Java 字符串常用操作(String类)
  • 原文地址:https://www.cnblogs.com/shapeOfMyHeart/p/5828098.html
Copyright © 2011-2022 走看看