Tomcat目录结构详解:从新手到专家的指南

Tomcat 目录结构图如下:
 
Tomcat目录结构详解:从新手到专家的指南

文章插图
1、bin 目录存放一些可执行的二进制文件,****.sh 结尾的为 linux 下执行命令,****.bat 结尾的为 windows 下执行命令 。
  • catalina.sh:真正启动 tomcat 文件,可以在里面设置 jvm 参数 。
  • startup.sh:启动 tomcat(需事先配置好 JAVA_HOME 环境变量才可启动,该命令源码实际执行的为 catalina.sh start) 。
  • shutdown.sh:关闭 tomcat 。
  • version.sh:查看 tomcat 版本相关信息 。
2、conf 目录存放 tomcat 相关配置文件的 。
Tomcat目录结构详解:从新手到专家的指南

文章插图
2.1、catalina.policy
项目安全文件,用来防止欺骗代码或 JSP 执行带有像 System.exit (0) 这样的命令,可能影响容器的破坏 。只有当 Tomcat 用 - security 命令行参数启动时这个文件才会被使用,即启动 tomcat 时,startup.sh -security。
2.2、catalina.proterties
配置 tomcat 启动相关信息文件
2.3、context.xml
监视并加载资源文件,当监视文件发生变化时,自动加载 , 通常不会去配置
2.4、jaspic-providers.xml 和 jaspic-providers.xsd
不常用文件
2.5、logging.properties
tomcat 日志文件配置 , 包括输出格式、日志级别等 。
2.6、server.xml
核心配置文件:修改端口号 , 添加编码格式等
核心组件介绍:
<1>Server:最顶层元素,而且唯一,代表整个 tomcat 容器 。一个 Server 元素包含一个或者多个 Service 元素;
<2>Service:对外提供服务的 。一个 Service 元素包含多个 Connector 元素,但是只能包含一个 Engine 元素;
<3>Connector:接收连接请求,创建 Request 和 Response 对象用于和请求端交换数据;然后分配线程让 Engine 来处理这个请求,并把产生的 Request 和 Response 对象传给 Engine
<4>Engine:Engine 组件在 Service 组件中有且只有一个;Engine 是 Service 组件中的请求处理组件 。Engine 组件从一个或多个 Connector 中接收请求并处理,并将完成的响应返回给 Connector,最终传递给客户端 。
<5>Host:代表特定的虚拟主机 。
<Host name="localhost" AppBase="webapps" unpackWARs="true" autoDeploy="true">
**name:** 虚拟主机的主机名 。比如 localhost 表示本机名称,实际应用时应该填写具体域名,比如 www.dog.com,当然如果该虚拟主机是给内部人员访问的,也可以直接填写服务器的 ip 地址 , 比如 192.168.1.101;
**appBase:** 设置 Web 应用程序组的路径 。appBase 属性的值可以是相对于 Tomcat 安装目录的相对路径,也可以是绝对路径,需要注意的是该路径必须是 Tomcat 有权限访问的;
**unpackWARs:** 是否自动展开 war 压缩包再运行 Web 应用程序,默认值为 true;
**autoDeplay:** 是否允许自动部署,默认值是 true,表示 Tomcat 会自动检测 appBase 目录下面的文件变化从而自动应用到正在运行的 Web 应用程序;
**deployOnStartup:** 为 true 时,表示 Tomcat 在启动时检查 Web 应用 , 且检测到的所有 Web 应用视作新应用;
<6>Context:该元素代表在特定虚拟主机 Host 上运行的一个 Web 应用,它是 Host 的子容器,每个 Host 容器可以定义多个 Context 元素 。静态部署 Web 应用时使用 。
<Context path="/" docBase="E:Resourcetest.war" reloadable="true"/>
**path:** 浏览器访问时的路径名,只有当自动部署完全关闭 (deployOnStartup 和 autoDeploy 都为 false) 或 docBase 不在 appBase 中时,才可以设置 path 属性 。
**docBase:** 静态部署时,docBase 可以在 appBase 目录下,也可以不在;本例中,不在 appBase 目录下 。
**reloadable:** 设定项目有改动时,重新加载该项目 。
2.7、tomcat-users.xml 和 tomcat-users.xsd
tomcat-users.xml:tomcat 用户配置文件,配置用户名 , 密码,用户具备权限
tomcat 默认没有配置任何用户,只有配置好用户后才能使用以下 Tomcat Manager 三个功能:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="admin" password="123456" roles="manager-script"/>
tomcat-users.xsd:对 tomcat-users.xml 文件的描述和约束
2.8、web.xml
web 应用相关通用配置 , 可以做下面这些事情 。


推荐阅读