Tomcat是一个流行的开源Java Servlet容器,用于部署和运行Java Web应用程序。其目录结构清晰,各部分分工明确,便于管理和维护。以下是Tomcat目录结构的主要组成部分及其功能解释:
1. bin
存放启动、停止和管理Tomcat服务器所需的脚本文件。这些脚本分为两类:
Unix/Linux shell脚本:以.sh结尾,如catalina.sh(主启动脚本)、startup.sh(启动Tomcat)、shutdown.sh(关闭Tomcat)、version.sh(查看Tomcat版本信息)等。
Windows批处理文件:以.bat结尾,如catalina.bat、startup.bat、shutdown.bat、version.bat等,功能与对应的shell脚本相同,但适配Windows环境。
这些脚本通常需要环境变量(如JAVA_HOME)正确设置才能正常运行。通过修改这些脚本或它们引用的配置文件(如setenv.sh或setenv.bat),可以定制Tomcat的启动参数,如指定Java虚拟机(JVM)的内存大小、启用调试模式等。
2. conf
包含Tomcat服务器的全局配置文件,用于定义服务器的行为、监听端口、安全管理、连接器设置、部署描述符等。
主要配置文件包括:
server.xml:Tomcat的主要配置文件,定义服务、连接器(Connector)、引擎(Engine)、主机(Host)等组件以及它们之间的关系,还包含端口配置、SSL设置、日志记录等信息。
web.xml:全局Web应用部署描述符,定义所有部署在Tomcat下的Web应用的默认Servlet、过滤器、安全约束等。
context.xml:定义Tomcat上下文(Context)的默认配置,可以被单个应用的META-INF/context.xml或context.xml文件覆盖。
tomcat-users.xml:存储用户和角色信息,用于管理Tomcat管理界面的访问权限。
logging.properties:日志配置文件,定义日志输出级别、格式、处理器等。
catalina.policy(或catalina.properties):Java安全策略文件,控制Java代码的安全权限。
3. lib
存放Tomcat运行时需要的所有JAR文件,包括Servlet和JSP规范实现(如Servlet API JAR)、Tomcat自身的核心库、连接池组件、JMX支持、JNDI实现等。
应用部署在Tomcat时,如果依赖的库也在lib目录下,应避免将这些库复制到应用的WEB-INF/lib目录以防止版本冲突和资源浪费。
4. logs
存储Tomcat运行时生成的日志文件,包括Tomcat启动和关闭日志、连接器访问日志、应用程序错误日志等。
重要日志文件如:
catalina.out:包含Tomcat启动时的输出信息、异常堆栈跟踪等,是排查问题的重要依据。
localhost.<date>.log(或其他主机名对应的日志):记录特定主机(如默认的localhost)下所有Web应用的访问和错误信息。
manager.<date>.log、host-manager.<date>.log:管理应用(如/manager和/host-manager)的操作日志。
5. temp
临时文件目录,Tomcat在运行过程中可能会在此处生成和存储临时数据,如JSP编译后的Servlet类文件、WebSocket会话持久化数据等。
清理此目录的内容通常不会影响Tomcat的正常运行,但在某些情况下(如JSP改动后需重新编译)可能需要保留。
6. webapps
默认的Web应用部署目录,将WAR文件或解压后的目录放入此目录,Tomcat会在启动时自动检测并部署这些应用。
子目录对应部署的应用名称,如webapps/example表示名为example的Web应用。
部署在此处的应用可通过http(s)://hostname:port/appname访问。
7. work
Tomcat处理JSP和Servlet时的工作目录,主要包含以下内容:
catalina:存储每个主机(Host)的部署信息和会话数据。
localhost(或其他主机名子目录):进一步细分,包含每个Web应用的编译后的Servlet类文件(.class)和JSP生成的Java源文件(.java)。
jk(如果使用JK连接器):与Apache HTTP Server集成的相关文件。
评论区