Web Server—Tomcat
一. 简介
Apache Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在1999年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 Java EE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。
简而言之,Tomcat 是一个运行 Java 的 Web 服务器,底层是 Socket 的一个程序,它也是 Servlet 和 JSP 的一个容器。
二. 版本
Tomcat | JDK | JavaEE | Servlet | JSP |
---|---|---|---|---|
9.x | >= 8 | 8 | 4.0 | 2.4? |
8.x | >= 7 | 7 | 3.1 | 2.3 |
7.x | >= 6 | 6 | 3.0 | 2.2 |
6.x | >= 5 | 5 | 2.5 | 2.1 |
5.x | >= 1.4 | 1.4 | 2.4 | 2.0 |
4.x | >= 1.3 | 1.3 | 2.3 | 1.2 |
3.x | >= 1.1 | 1.3 | 2.2 | 1.1 |
三. 目录结构
apache-tomcat-8.x:
1.bin:主要存放 Tomcat 的操作命令,根据操作系统可以分为两大类:一是以 .bat
结尾(Windows);二是以 .sh
结尾(Linux/Unix)。
2.conf:全局配置文件
- 一个策略文件:
- catalina.policy:当使用 -security 选项启动 Tomcat 实例时会读取此配置文件来实现安全运行策略;
- 两个属性文件:
- catalina.properties :Java 属性的定义文件,用于设定类加载路径等,以及一些 JVM 性能相关的调优参数。
- logging.properties :日志相关的配置信息。
- 四个XML配置文件:
- server.xml:Tomcat 的主要配置文件,配置整个服务器信息,如修改连接器端口号(默认为 8080 )。不能动态重加载,文件修改之后必须重启服务器才能生效。
- web.xml:全局的 web 应用程序部署描述文件,如可以设置 Tomcat 支持的文件类型。
- context.xml:Tomcat 的一些特定配置项,针对所有应用程序生效。
- tomcat-users.xml:配置 Tomcat 的用户名、密码,管理身份验证以及访问控制权限。
3.lib:Tomcat 运行依赖的一些 Jar 包,比如常见的 servlet-api.jar
、jsp-api.jar
。所有的应用程序可用,可以放置一些公用的 Jar 包,如MySQL JDBC驱动(mysql-connector-java-8.0.{xx}.jar
)。
4.logs:运行中产生的日志文件。包含引擎(engine)日志文件 Catalina.{yyyy-mm-dd}.log,主机日志文件 localhost.{yyyy-mm-dd}.log,以及一些其他应用日志文件如 manager、host-manager。访问日志也保存在此目录下。
5.temp:临时文件目录,清空不会影响 Tomcat 运行。
6.webapps:默认的应用程序根目录,Tomcat 启动时会自动加载该目录下的应用程序,可以以文件夹、war 包、jar 包的形式发布(启动时会自动解压成相应的文件夹)。也可以把应用程序放置在其他路径下,需要在文件中配置路径映射。
7.work:用来存放 Tomcat 在运行时编译后的文件,如 JSP 编译后的文件。清空 work 目录,然后重启 Tomcat,可以达到清除缓存的作用。
四. 架构
Tomcat 是一个 HTTP 服务器,同时也是一个 Servlet 容器(可以执行 Servlet 文件,JSP、JSF 会被转换成 Servlet),支持多种功能,因此采用了分层、模块化的设计。
查看 conf 文件夹中的 server.xml 文件,如上图的层次结构:
<?xml version='