Tomcat 是一个由 Apache 软件基金会开发的开源 Web 服务器和 Servlet 容器,它是 Jakarta 项目中的一个核心项目。Tomcat 最初由 James Duncan Davidson 编写,后来成为了 Apache 的一部分,并由 Apache、Sun Microsystems 及其他公司和个人共同维护和发展。
主要特点包括:
1. 免费开源:Tomcat 是完全免费的,并遵循 Apache 开源许可,这意味着任何人都可以下载、使用和修改其源代码。
2. 轻量级:相较于其他全面支持 Java EE 规范的应用服务器,Tomcat 更加轻便,特别适合小型到中型的 Web 应用部署。
3. Servlet 容器:Tomcat 主要用于运行 Java Servlet 和 JSP(Java Server Pages),是 Servlet 和 JSP 规范的参考实现。它可以处理 HTTP 请求,执行 Java 代码以生成动态网页内容。
4. 多平台兼容:由于 Java 的跨平台特性,Tomcat 可以在任何安装了 Java 虚拟机(JVM)的操作系统上运行。
5. 模块化设计:Tomcat 架构包含服务器(Server)、服务(Service)、连接器(Connector)和引擎(Engine)等多个组件,这样的设计便于配置和管理。
6. 易于部署:开发者可以直接将 Web 应用打包成 WAR 文件,然后放置在 Tomcat 的 webapps 目录下,Tomcat 会自动部署并运行这些应用。
7. 社区活跃:作为广泛使用的软件,Tomcat 拥有一个活跃的开发者和用户社区,提供了丰富的文档、教程和支持。
尽管 Tomcat 不是一个完整的 Java EE 服务器(比如不直接支持 EJB),但它对大多数 Web 开发所需的功能提供了良好的支持,尤其是结合现代的开源框架如 Spring、Struts 和 Hibernate 使用时。
Tomcat 提供了一系列配置选项以满足不同的部署需求,下面是一些常用功能的配置示例: 1. 修改端口号: 默认情况下,Tomcat 监听在 8080 端口。要更改端口,编辑 `conf/server.xml` 文件,找到 `<Connector>` 标签并修改 `port` 属性: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 将 `8080` 改为你想要的端口号。 2. 配置虚拟主机: 若要为多个域名提供服务,可以在 `server.xml` 中添加多个 `<Host>` 元素: <Host name="www.example.com" appBase="webapps/example"> <Alias>example.com</Alias> <Context path="" docBase="/path/to/your/app" /> </Host> 3. 设置字符编码: 避免URL中的中文乱码,可以在 `<Connector>` 标签中添加 `URIEncoding` 属性: <Connector ... URIEncoding="UTF-8" /> 4. 调整连接超时: 可以通过设置 `connectionTimeout` 来调整客户端连接超时时间(单位为毫秒): <Connector ... connectionTimeout="20000" /> 5. 启用SSL/TLS: 若要通过HTTPS提供服务,需要配置SSL连接器,首先在 `conf` 文件夹下创建或修改 `server.xml` 中的 SSL `<Connector>`: <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="path/to/keystore" keystorePass="your-password" />
记得替换 `keystoreFile` 和 `keystorePass` 为你的密钥库文件路径和密码。 6. 管理用户权限: 在 `conf/tomcat-users.xml` 文件中添加用户角色,以便访问管理界面: <tomcat-users> <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="admin" password="password" roles="manager-gui,admin-gui"/> </tomcat-users> 7. 日志配置: 修改 `conf/logging.properties` 文件来调整日志级别、输出位置等。
实际配置时应根据具体的 Tomcat 版本和需求进行适当调整。