转自: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 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。
名称的由来
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容器组件