- bin:存放可执行脚本文件,如startup.bat/startup.sh等
- conf:存放Tomcat相关配置文件
- lib:Tomcat类库,该目录中的jar包所有项目共享
- logs:Tomcat日志记录
- temp:Tomcat存放临时文件的地方
- webapps:存放WEB应用,其每个子目录都是一个项目
- work:Tomcat把jsp转换为class文件的工作目录。
conf
- catalina.policy:只有当Tomcat用-security命令行参数启动时这个文件才会被使用。包含由java Security Manager 实现的安全策略声明.它替换了安装java时带有的java.policy文件.这个文件用来防止欺骗代码或JSPs执行带有像System.exit(0)这样的命令的可能影响容器的破坏性代码
- catalina.properties:主要配置tomcat的安全设置、类加载设置、不需要扫描的类设置、字符缓存设置四大块
- context.xml:对所有应用的统一配置。每个<Context>元素代表了运行在虚拟主机上的单个Web应用。这个文件默认地可以设置到何处访问各web应用程序中的web.xml文件。在tomcat6以后,context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中,因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件,一旦发现文件被修改(时间戳改变了),就会重新加载这个文件,而不需要重启服务器,一般推荐把应用的JNDI资源配置在context.xml文件中,而不是server.xml文件中。Tomcat软连接访问,要修改/conf/context.xml文件,在Context节点上添加属性 allowLinking="true"
<Context path="/forest" docBase="forest" debug="0" reloadbale="true" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/forest.xml</WatchedResource>
<Resource name="jdbc/forest" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root"
password="root" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"/>
</Context> 复制代码
- path:建立的虚拟目录,指定访问Web应用的入口,http://localhost:8080/forest
- docBase:为实际目录在硬盘上的位置(应用程序的路径或者是WAR文件存放的路径)
- reloadable:如果这个属性设置为true,Tomcat服务器在运行状态下会监视在 WEB/classes和WEB-INF/lib目录的Class文件的改变,如果监视到有class文件被更新, 服务器自动重新加载Web应用,这样可以在不重启tomcat的情况下改变应用程序Class文件
context.xml的三个作用范围:
- tomcat server级别:/conf/context.xml配置
- Host级别:/conf/Catalina/${hostName}里添加context.xml,继而进行配置
- webapp 级别:conf/Catalina/${hostName}里添加${webAppName}.xml,继而进行 配置。
- logging.properties:JULI记录器使用默认日志配置. 它默认地使用ConsoleHandler和fileHandler设置应用程序 或者程序包的日志级别
- server.xml:整个Tomcat运行环境配置(如端口号/虚拟主机等)
元素 | 描述 |
<Server> | 顶层类元素,可以包括多个Service。它提供一个接口让其它程序能够访问到这个Service集合 ,同时要维护它所包含的Service的生命周期,如何初始化、如何结束服务、如何找到别人要 访问的Service。整个Tomcat的生命周期由Server控制。 |
<Service> | 顶层类元素,可包含一个Engine(引擎),多个Connecter,把它们组装在一起,向外面提供服务 |
<Connector> | 连接器类元素,代表通信接口。它的主要任务是负责接收浏览器的发过来的tcp连接请求, 创建一个Request和Response对象分别用于和请求端交换数据,然后会产生一个线程来 处理这个请求并把产生的Request和Response对象传给处理这个请求的线程,处理这个 请求的线程就是 Container 组件要做的事了 |
<Engine> | 容器类元素,为特定的Service组件处理客户请求,包含多个Host, 是<Service>组件核心。 |
<Host> |
容器类元素,为特定的虚拟主机组件处理客户请求,可包含多个Context
每个Host元素表示一台虚拟主机,每台虚拟主机都有自己的主机名和项目目录 |
<Context> | 容器类元素,为特定的Web应用处理所有的客户请求 |
- web.xml:部署描述符文件(定义了默认JSP/Servlet处理规则,是所有web项目中WEB-INF/web.xml的父文件)