tomcat6的结构已经有了改变。
bin目录:主要作用控制tomcat的启动与关闭(使用catalina)脚本,以及与启动关闭有关的安全管理(uli)等。archive版(解压缩后直接用的那种)的比用安装包安装的那种要多一些sh和bat脚本.startup脚本实质上也是调用catalina脚本,只不过所让它在后台运行。此目录也有一些jar包,包括bootstrap.jar,commons-daemon.jar,tomcat-juli.jar。还有些exe文件,是用来在windows平台下安装服务用的。
conf目录:配置文件,当tomcat启动时,就按照这里面的配置创建一些对象.文件及简单描述如下:
catalina.policy:包含Java Security Manager使用的安全策略描述。它替代了java自身所带的java.policy文件。这个文件的主要作用是防止jsp代码等用户代码破坏Tomcat容器,如system.exit(0)。只用在使用命令行启动tomcat并使用-security参数时,这个文件才被使用。
catalina.properties:里面包含了不能被jsp或servlet修改的jar文件列表,如java.*.org和tomcat.apache.*等。
context.xml:由于context位于顶层,是一个被所有Web应用程序使用的配置文件。默认内容为web.xml文件的位置。
logging.properties:默认为JULI logger使用的配置文件。
server.xml:Tomcat中主要的配置文件,定义了tomcat的体系结构.这个文件时被digester用来在tomcat启动时构建tomcat容器的配置文件。
tomcat-users.xml:有关Tomcat管理员身份的配置文件,它是同server.xml中的UserDatabase Realm一起使用的。
web.xml:这个默认的web.xml被Tomcat下所有的应用程序所使用。主要包括<servlet-mapping>,<servlet>标签,<mime-type>标签和<welcome-file-lilst>标签。
自动生成的用户应用程序的配置文件。当用户在Tomcat中部署一个应用时,tomcat会自动在这个文件夹里生成一个与应用程序中的context.xml等价的文件。这个文件一般所放在一个目录 中,目录结构如下:[ servlet引擎名(catalina)]/[host name(localhost)]/[context path name(PetStore)].xml。此外,用户还可以创建一个[servlet 引擎名]/[主机名]/context.xml.default来创建某个引擎- 主机组合下的默认配置文件。
lib目录:里面包含了Tomcat容器使用的所有jar包。这里也是用户存放多个web应用程序共享的jar包以及JDBC连接包的地方。
log目录:里面包含有tomcat生成的日志文件。这些日志文件默认是由JULI生成的,日志文件是按天为单位生成的。
temp目录:顾名思义,这个文件夹所Tomcat用来存放临时文件用的。
webapps目录:默认的web应用程序存放的位置。如果将war包放到这个目录下,tomcat会自动将这个war包解压;如果这个war 文件被删除,解压后生成的文件夹也会被自动删除。
work目录:工作目录。这里是tomcat将jsp文件转换为java servlet的地方,里面文件的目录结构一般是这样的:[引擎名]/[主机名]/web应用程序
从上面这些目录结构可以猜想,servlet引擎是Tomcat与web应用程序的一个重要界限,也算tomcat的核心所在。
2.Tomcat体系结构概览
在Tocmat4以后,tomcat的体系机构发生了很大的变化。Tomcat4以后的版本没有再基于以前的版本进行改进,而是彻底的重写。下面这张Tomcat示意图比较好地反映了一个经典的tomcat6的体系结构。值得注意的是,这张图里的有些部分并不是tomcat必须的。例如,在有其他的web server(如apache http server)来实现解译用户request并传给web应用程序的时候,Engine和Host可以被其他的web server替代。