当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

tomcat 容器

发表于: 2015-07-13   作者:BlueSkator   来源:转载   浏览:
摘要: Tomcat的组成部分 1、server A Server element represents the entire Catalina servlet container. (Singleton) 2、service service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。   3、connector 一个connector

Tomcat的组成部分

1、server

A Server element represents the entire Catalina servlet container. (Singleton)

2、service

service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。

 

3、connector

一个connector在某个制定的端口上监听来自客户的请求,将得到的请求交给engine进行处理,并从engine处获得响应,进而返回给用户。

connector主要包括两类:

        一是Coyote Http/1.1 Connector   在8080端口侦听来自浏览器的客户http请求;

        二是Coyote JK2 Connector 在8009端口侦听来自其它WebServer的请求;

4、engine

Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。当Engine获得一个请求时,根据请求域名将该请求的匹配到响应的Host上,然后把该请求交给该Host来处理。
Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理。

5、host

代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配。每个虚拟主机下都可以部署一个或者多个Web App,每个Web App对应于一个Context,有一个Context path
当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理。无法和其它Context的路径名匹配的请求,最终将和该默认Context匹配。而该Host的默认Context为

 Context path=“”。

6、context

一个Context对应于一个Web Application,一个Web Application由一个或者多个Servlet组成。Context在创建的时候将根据配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml载入Servlet类
当Context获得请求时,将在自己的映射表(mapping table)中寻找相匹配的Servlet类。如果找到,则执行该类,获得请求的回应,并返回。

 7、servlet容器

  • servlet容器接收客户请求解析
  • servlet容器创建servletRequest对象:包含客户请求信息及关于客户的信息如请求头、请求正文、客户机的ip等。
  • servlet容器创建servletResponse对象。
  • 调用客户请求的service方法api,将servletRequest、servletResponse作为参数传递进去;
  • 根据客户参数中的客户请求信息,利用servletResponse对象产生响应的结果
  • servlet容器将结果交给context

 

Tomcat运行范例

url:http://vt.ct.test.sankuai.info/api/product?contractId=9e506d54-58f1-11e3-8dea-00222822153f

  1. 由sankuai.info 寻址到对应的server;
  2. 该url端口号默认为8080,由service部分的Coyote Http/1.1 Connector侦听到来自客户的请求,并将其交付给service中的engine;
  3. engine根据url对应的host域名vt.ct.test.sankuai.info匹配到对应的host,同时将请求交付给对应的host;
  4. host由context path匹配对应的context,合同系统仅有context path=“”的默认context,则将请求交付给默认context;
  5. 合同系统主要存在一个servlet,将请求交付对应的servlet,由客户申请servlet生成HttpServletRequest对象,HttpServletResponse对象;
  6. 由controller的url/api/product寻址到对应的函数接口,将参数contractId=9e506d54-58f1-11e3-8dea-00222822153f传进去
  7. 将返回通过servletResponse传递给servlet;
  8. Context把执行完了之后的HttpServletResponse对象返回给Host
  9. Host把HttpServletResponse对象返回给Engine
  10. Engine把HttpServletResponse对象返回给Connector
  11. Connector把HttpServletResponse对象返回给客户

tomcat 容器

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Tomcat容器入门介绍 Tomcat环境配置 PS:JDK的安装这里就不讲了,找到安装包直接下一步下一步就行了
Servlet容器处理Servlet请求的简单流程图如下图所示: UML类图如下图所示: HttpServletProcessor类
Servlet容器处理Servlet请求的简单流程图如下图所示: UML类图如下图所示: HttpServletProcessor类
这个logo相信接触过web的同志们都熟悉——Tomcat,学名公猫,并非汤姆家的猫。很多人都在做web项目
出处:http://gearever.iteye.com Tomcat提供了engine,host,context及wrapper四种容器。在总体结
一直都说Tomcat是servlet容器,但是不知道原因,今天在使用Eclipse+Tomcat开发web应用时发现在Eclip
一,tomcat中每一个容器都有其生命周期,初始化/启动/结束 等,可以在各自的生命周期内的步骤中进行
怎样配制集群/Session复制 print-friendly version 快速入门 要在Tomcat 5.5容器里进行session复制
怎样配制集群/Session复制 print-friendly version 快速入门 要在Tomcat 5.5容器里进行session复制
http的本质还是socket,所以底层传输的还是字节流(不要深究到二进制层面),既然是字节流,那么肯
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号