tomcat简介

转自:http://blog.sina.com.cn/s/blog_4ab26bdd0100gwph.html


Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是6.0。

    Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
  Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

  这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器

 

名称的由来  

    Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公豹的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。

 

Apache Tomcat Versions

Different versions of Apache Tomcat are available for different versions of the Servletand JSP specifications. The mapping between the specifications and the respective Apache Tomcat versions is:

Servlet/JSP Spec Apache Tomcat version Actual release revision
2.5/2.1 6.0.x 6.0.20
2.4/2.0 5.5.x 5.5.28
2.3/1.2 4.1.x (archived) 4.1.40 (archived)
2.2/1.1 3.3.x (archived) 3.3.2 (archived)

The releases are described in more detail below to help you determine which one is right for you. More details about each release can be found in the associated release notes.

Please note that although we offer downloads and documentation of older releases, such as Apache Tomcat 4.x, we strongly encourage users to use the latest stable version of Apache Tomcat whenever possible. We recognize that upgrading across major versions may not be a trivial task, and some support is still offered on the mailing list for users of old versions. However, because of the community-driven support approach, the older your version the less people would be interested or able to support you.

===========================================================================


转自:http://www.cnblogs.com/chaoguo1234/archive/2013/03/08/2950846.html


为了让web服务器和web应用这两个不同的软件系统协作,首先要有使它们之间协作的标准接口,Servlet就是其中的主要接口之一, 它规定:

1 服务器能够访问web应用中任何实现了Servlet接口的类

2 web应用中被web服务器动态调用运行的程序应该位于实现Servlet的类中

Servlet就是运行在服务器端的小插件,而SUN把它制定的关于web应用程序和web服务器之间的一系列JAVA标准接口,统称为Servlet规范

Servlet规范把能够发布运行JavaWeb应用程序的web服务器成为Servlet容器,Tomcat就是这样一个优秀的Servlet容器。

Servlet规范规定Servlet容器响应客户端请求的Servlet流程如下:

1 客户端发出访问特定Servlet的请求

2 Servlet容器接受请求并解析

3 Servlet容器创建ServletRequest对象,它包含了客户端的一些请求信息

4 Servlet容器创建ServletResponse对象

5 Servlet容器调用客户端所请求的Serlet中service服务方法,并将ServletRequest和ServletResponse作为参数传入

6 Servlet从ServletRequest中获取客户端请求信息

7 Servlet利用ServletResponse对象生成响应结果

8 Servlet把响应结果发回给客户端

Tomcat的组件

Tomcat由一系列可配置的组件构成,其核心是Servlet容器组件,在service.xml中,每一个xml元素代表一个组件,包括4类组件:

1 顶层元素:包括<Server>和<Service>元素

2 连接器类元素: <Connector>

3 容器类元素:有4中容器类元素,<Engine> <Host> <Context> <Cluster>

4 嵌套元素: 代表可以嵌入到容器中的组件,如: <Value>和<Realm>

它们的作用如下:

1 <Server>元素,代表整个Servlet容器组件,它位于最顶层,可以包含一个或者多个<Service>元素

2 <Service>元素,包含一个或者多个<Connector>元素,包含一个<Engine>元素

3 <Connector>元素,代表客户端与服务器之间的通信接口,负责就收客户端的请求,并且返回服务器响应的结果

4 <Engine>元素,每个<Service>元素只能包含一个<Engine>元素,<Engine>元素处理同一个<Service>下的所有<Connector>元素接受到的客户端请求

5 <Host>元素,在一个<Engine>中可以包含一个或者多个<Host>元素,每个<Host>元素代表一个虚拟主机,它可以包含一个或者多个web应用

6 <Context>元素,在一个<Host>中可以包含一个或者多个<Context>元素,每个<Context>元素代表一个WEB应用。

Tomcat的工作模式

Tomcat有3中工作模式:

1 作为独立的Servlet容器,这是默认工作模式。此时Tomcat会作为独立的服务器,Servlet容器组件作为服务器的一部分存在

2 作为其他web服务器进程内的Servlet容器,此时Tomcat分为web服务器插件和Servlet容器组件,web服务器插件在其他web服务器进程地址空间内启动一个Jav虚拟机运行Servlet容器组件

3 作为其他web服务器外的Servlet容器组件,此时Tomcat分为web服务器插件和Servlet容器组件,web服务器插件会在其他web服务器进程地址空间之外启动一个Java虚拟机运行Servlet容器组件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值