ReadyGo!技术成就梦想 >> JAVA技术 >> 开源技术 >> tomcat深入??内部结构描述

tomcat深入??内部结构描述

ReadyGo!技术成就梦想 www.efish.cn efish 2007-10-10 5:38:18
  tomcat服务器是一种servlet/jsp容器,更实质性的说是servlet容器,因为jsp最终还是被编译成servlet来执行的。而对于servlet来说,其最长见的用途是扩展java web服务器功能,为来自web客户的请求提供服务。它完全运行在java虚拟机上。由于它的运行在服务器端,因此他的运行不依赖于浏览器。

   tomcat作为servlet容器,负责处理客户请求,把请求传给servlet并把结果返回给客户。servlet容器与servlet之间的接口是由java servlet api定义的,在此api中定义了servlet的各种方法,这些方法在servlet生命周期的不容阶段被servlet容器调用,servlet api还定义了servlet容器传递给servlet的对象类,如请求对象servletrequest和相应对象servletresponse

   tomcat服务器是由一系列可配置的组件构成,其中核心组件是catalina servlet容器,它是所有其他tomcat组件的顶层容器。tomcat的组件可以在conf/server.xml文件当中进行配置,每个tomcat组件在server.xml文件中进行配置,每个tomcat组件在server.xml文件中对应一种配置元素。具体见下:
<server>
<service>

<connector>
</connector>

<engine>
<host>
<context></context>
</host>
</engine>

</service>
</server>

1.顶层类元素:
<server>和<service>,他们位于整个配置文件的顶层
<server>元素代表整个catalina servlet容器,它是tomcat实例的顶层元素。<server>元素当中可包含一个或多个<service>元素。
<service>元素中包含一个<engine>元素,以及一个或多个<connector>元素,这些<connector>元素共享同一个<engine>元素

2.连接器类元素:
connector,它代表了介于客户与服务器之间的通信接口,负责将客户的请求发送给服务器,并将服务器的相应结果传递给客户。
3.容器类元素
<engine>,<host>和<context〉
其中<engine>组件处理在同一个<service>中所有<connector>元素接受到的客户请求
<host>组件为特定的虚拟机处理所有客户请求。每个<host>元素定义了一个虚拟主机,它可以包含一个或多个web应用。
<context>组件为特定的web应用处理所有客户请求。它是使用最频繁的元素。每个<context>元素代表了运行在虚拟机上的单个web应用,一个<host>元素中可以包含多个<context>元素
说到<context>元素,java web应用的主要特征之一就是它与context的关系,每个web应用有唯一的context。当java web应用运行时,servlet容器为每个web应用创建唯一的servletcontext对象,它被整个web应用中所有的组件共享。
如下代码:
 <context path="/reglog" docbase="reglog" debug="0" 
         crosscontext="true" reloadable="true">
 </context>
你可以自己在server.xml当中定义一个context元素,设定你所存在项目的参数及属性。其中path指定访问web应用的url入口
docbase指定web应用的文件路径,可以给定绝对路径,也可以给定向对于host的appbase属性的相对路径
reloadable,如果这个属性设为true,tomcat服务器在运行状态下会监视在web-inf/classes和web-inf/lib目录下class文件的改动,如果监测到有class文件被更新,服务器会自动重新加载web应用。

另外说一下tomcat的运行脚本
如果仔细研究一下tomcat的启动和关闭脚本,会发现startup.bat和shutdown.bat都执行同一个目录下的catalina.bat脚本。其实质是这样的:执行startup.bat脚本,相当于执行了catalina start命令,执行shutdown.bat相当于执行了catalina stop命令。

common\lib,server\lib,shared\lib这三个目录相信大家都见过吧,但具体是干什么用的呢?
其中server\lib下的jar文件只能被tomcat服务器访问。
shared\lib下的jar文件可以被所有的web应用访问,但不能被tomcat服务器访问。
common\lib目录下的jar文件可以被tomcat服务器和所有的web应用访问
相关文章
开源技术:tomcat5.0下配置ssl 1、使用java1.4版本 2、设置环境变量: path=/usr/j2sdk1.4.1/bin java_home=/usr/j2sdk1.4.1/ classpath=/..
开源技术基础:tomcat的用法 谨以此文送给所有正在使用tomcat或者打算使用的人们,向tomcat的所有开发人员致敬! 一、小猫tomcat其实很可..
tomcat5.5数据库连接池配置 猫咪正不断把自己blog上发表的文章转移到这里,给自己的blog打打知名度,提高点人气。希望大家多访问猫咪的..
开源技术之tomcat数据源配置总结 成功配置环境tomcat5.0.28+mssqlserver2000+ms jdbc driver一、 安装tomcat5.0.28二、 安装ms jdbc d..
tomcat+iis配置方法 impty: 1)说明 我用的配置如下:win2000 professional + iis 5.0(win2000自带)+ tomcat 3.1 binary rel..
tomcat 的数据库连接池设置与应用 1.将数据库驱动程序的jar文件放在tomcat的 common/lib 中;2.在server.xml中设置数据源,以mysql数据库为..
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想