Tomcat中各组件介绍

转载地址:http://www.goldendoc.org/2010/12/tomcat_component/

本文简单介绍一下Tomcat中的各种组件。

1、Server

代表整个Tomcat实例,在JVM中是单例的,它还负责管理包含的Service组件的生命周期;下图是对Server组件的一个简单描述:


  • 可以在server.xml文件是对Server组件进行配置;
  • 可配置的属性有:name, shutdown port, shutdown command, class name等;
  • shutdown port默认为8005;
  • shutdown command默认为SHUTDOWN;出于安全,只能从同一台服务器发出SHUTDOWN命令;
  • 提供JNDI的实现,可以放任意对象(如DataSource,环境变量等);

2、Service

Service组件代表的是一组请求处理组件;一个Server实例可以包含多个Service实例,每个Service实例与一组Connector实例和单个Engine实例相关联;


单Service实例一般够用了;如果需要针对不同的IP或Port使用不同的Service组件来处理,则可以使用多Service实例;

3、Connector

Connector组件把Engine从不同的通信协议中隔离出来,如HTTP,HTTPS,AJP等;

可以配置Tomcat的工作模式:Standalone & Conjuction;


在Standalone模式中,Tomcat可以配置HTTP/HTTPS的Connector,它既要处理静态内容,也要委托Engine处理动态内容;


在Conjunction模式中,客户端是Apache或是IIS之类的Web Server;当Web Server决定将请求转交给Tomcat处理时,它通过AJP协议与Tomcat交互;AJP协议是基于二进制流的,比HTTP更高效一些;

关于Connector的几个重要点:

  • 监听的IP和Port;
  • 处理请求的最大线程数;如果所有线程都忙,则会丢弃新的请求;
  • 所有的Connector接收到请求后,转换成统一的模式,再交给唯一的Engine处理;Engine负责处理请求并产生响应;
  • Connector将Engine产生的响应按合适的协议发送到客户端;

4、Engine

其实就是Servlet Engine;一个Service组件只能包含一个Engine组件;但一个Engine可以包含多个Host组件;

它接收代表请求和响应的对象,然后将工作委托给相应的Host组件进行处理;如果没有找到对应的Host组件,则委托给default Host来处理;

5、Host

两个重要点:

  • domain name:每个Host必须要有一个唯一的domain name;浏览器发过来的请求头里包含有该domain name;domain name在Engine里必须是唯一的;
  • app base folder:发布到该Host里的应用的目录名;可以是相对CATALINA_BASE的相对路径也可以是文件系统的绝对路径;

当Host获得一个针对特定Host请求时,将会在该Host环境下把请求匹配到对应的Context上;然后把请求交给这个Context来处理;

6、Context

一个 Context对应一个Web Application;它由多个Servlet组成;在创建Context时,将根据conf/web.xml和webapps/${context path}/WEB-INF/web.xml加载Servlet并创建映射表;


  • Document Base:存放war或解压后的context的地方;
  • Context Path:唯一标志一个Context;当没有匹配任何一个Context时,默认的Context将会处理该请求;默认的Context的Context Path为空;
  • Automatic Reload:一旦监测到Context有修改,则会自动重启Context;只用于开发模式;

7、Wrapper

Wrapper是Context的子元素,代表了一个Servlet(或一个JSP被编译后的Servlet);它负责加载Servlet、实例化Servlet、以及触发生命周期方法的调用,如init(), service(), destory()方法;另外,Wrapper也负责调用与Servlet相关的Filter;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值