Tomcat简介及组成介绍(1)

(若有不足或错误之处还请多指导)

Tomcat 简介

 

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和Java Server Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将 Tomcat 和 Apache Web 服务器混淆,Apache Web Server 是一个用 C 语言实现的 HTTP web server;这两个 HTTP web server 不是捆绑在一起的。Apache-Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。

    Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
   
    Tomcat提供了一个Jasper编译器用以将JSP编译成对应的Servlet。
    Tomcat的Servlet引擎通常与Apache或者其他Web服务器一起工作。
    由于Tomcat是使用Java开发的,所以它可以运行在任何一个装有JVM的不同操作系统之上。

Tomcat的逻辑组件

<1>. Server是Tomcat的一个实例,一个Server可以有多个service

<2>. Connector (连接器,可以有多个) : 为了连接不同的请求,会有不同的连接器,如: http connection ,https connection  ,AJP连接器(Apache Jesery Protocol) 实现apache 与 Tomcat 通信连接的

<3>.  Service        让Server的Connector 与引擎关联起来       
       1. 是Server的一个子组件
       2. 关联一个或多个 Connector到某个Engine
       3. 一个Service内部只能有一个引擎,一个引擎可以关联多个Connector     

<4>.  一个引擎就是一个Container(容器)   也就是一个独立的web运行环境
       1. 可以包含多个Host
       2. 但要有一个默认的Host(虚拟主机)


<5>.  Host
       1. 是引擎的子组件
       2. 可以包含多个Context
       3. 每个Context对应于一个Web应用程序,而每一个Web应用程序需要至少一个web.xml(部署描述符文件)


 <6>.  Context:上下文
        每一个独立的主机可以包含多个Context
 

额外的组件
      valve : 阀门, 能够定义在容器内部,实现将具有某些特征的数据包或报文,对其归类采取一定动作的工具
      Realm : 领域    能够定义在容器内部,为某一个应用程序提供用户认证的机制,  用户在访问这个容器时,是需要认证的

<*>关于Tomcat各组件的详细信息可以参考这篇文章http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/index.html

 

Tomcat的目录结构(默认是在/usr/local/ 下)

 bin/        
        .bat 是在windows上执行的脚本 
        .sh 是在linux上执行的脚本
        bootstrap.jar

        commons-daemon-native.tar.gz
        tomcat-native.tar.gz      或者需要解压出来自己重新编译安装,依赖于apr 和apr-utils,让tomcat支持apr连接器
   
 conf/      
        server.xml         当前Tomcat的主配置文件
        web.xml            应用程序的布署描述符文件
        context.xml
        tomcat-user.xml    启用用户认证时用到的文件(定义用户的帐号、角色、密码)
        catalina.policy    引擎策略 ,施加到catalina引擎上的安全策略, 在启动的时候指定 -security 选项
        catalina.properties     运行时候的属性     

       
 lib/        公共类       
       catalina.jar        catalina引擎的实现(catalina是tomcat的引擎)
       servlet-api.jar        让tomcat成为servlet容器的一个jar文件
                               
 temp/   
        
 webapps/       网页文件存放的默认路径
       host-manager/        虚拟主机定义和管理,基于web的管理接口,可以通过web管理tomcat           
       manager/            布署工具和会话管理工具
       ROOT/                直接被访问的网页文件存放路径
                               
 work/        jsp或tomcat 的工作目录   

**************************************************************************

 /bin/version.sh         查看tomcat的环境变量及相关属性信息                     CATALINA_BASE        tomcat 实例的运行目录
          在同一个系统上可以启动多个 tomcat 进程,每个tomcat进程称之为一个tomcat的 instance(实例)

         配置tomcat的连接器,让不同的实例使用不同的端口提供服务
         不同实例的运行目录不同,都要有自己的工作目录,配置文件都在实例的运行目录下,每一个实例都要有自己的工作环境
                                                
       CATALINA_HOME        tomcat软件的默认安装路径       
       CATALINA_TMPDIR


 /bin/configtest.sh        检查配置


 /bin/catalina.sh  可以调用其它的脚本  version/configtest/start                        

**************************************************************************
  以下三个端口都在 server.xml 文件中定义   

                
   8005    控制sever的一个telnet的控制远程连接口   <Server port="8005" shutdown="SHUTDOWN">     eg: # telnet 127.0.0.1 8005;  SHUTDOWN         

   8009    连接器所监听的端口  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />       AJP协议只可以接受前端apache服务器的请求  

                  
   8080    连接器所监听的端口    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />   HTTP协议可以接受用户的请求
     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />    

                        
                               
                               

你可能感兴趣的:(组件)