Tomcat服务器—Windows下载配置详细教程
一、关于
1.1 简介
Tomcat是一个开源的Java Servlet容器和Web服务器,由Apache软件基金会维护。它实现了Java Servlet和JavaServer Pages (JSP) 规范,用于运行Java Web应用程序。Tomcat支持多种Java EE功能,并提供了高效的性能和可扩展性,适用于开发和部署Java基于Web的应用程序。
1.2 发展
Tomcat 最初是由 James Duncan Davidson 开发的一个小型项目,并在1998年捐赠给了 Apache 软件基金会。之后,它成为了独立的顶级项目。
- 初期阶段(1999年-2001年)
- 1999年:Tomcat的初版本由Apache软件基金会发布,它是由Java Servlet 2.1和JSP 1.1规范支持的。Tomcat最初是由Apache和Sun Microsystems合作开发的,作为一个Servlet和JSP的参考实现。
- 2000年:Tomcat 3.0发布,支持Servlet 2.2和JSP 1.1规范。这个版本标志着Tomcat作为一个独立的Servlet容器和Web服务器的初步稳定。
- 成熟阶段(2002年-2008年)
- 2002年:Tomcat 4.0发布,支持Servlet 2.3和JSP 1.2规范。这个版本引入了对JMX(Java Management Extensions)的支持,改进了管理和监控功能。
- 2004年:Tomcat 5.0发布,支持Servlet 2.4和JSP 2.0规范,显著提高了性能和稳定性。
- 2006年:Tomcat 5.5发布,带来了许多改进,包括更好的性能和更强的兼容性。它支持Servlet 2.4和JSP 2.0规范。
- 2007年:Tomcat 6.0发布,支持Servlet 2.5和JSP 2.1规范,引入了对Annotations(注解)的支持,简化了配置过程。
- 进一步改进(2009年-2018年)
- 2009年:Tomcat 7.0发布,支持Servlet 3.0和JSP 2.2规范,改进了异步处理和其他新特性。
- 2013年:Tomcat 8.0发布,支持Servlet 3.1和JSP 2.3规范,引入了对WebSocket的支持,并增强了对现代Web应用的支持。
- 2016年:Tomcat 8.5发布,继续改进性能和兼容性,支持Servlet 3.1、JSP 2.3和EL 3.0规范。
- 现代阶段(2019年-现在)
- 2019年:Tomcat 9.0发布,支持Servlet 4.0、JSP 2.3和EL 3.0规范,增强了对HTTP/2的支持,进一步改进了性能和安全性。
- 2021年:Tomcat 10.0发布,支持Servlet 5.0、JSP 2.3和EL 3.0规范,标志着Tomcat对Jakarta EE的新命名空间的支持开始,这与Java EE的迁移有关。
- 2022年:Tomcat 10.1发布,进一步完善和增强了对Jakarta EE的支持,提升了对现代Web应用的兼容性和性能。
Tomcat的不断发展和改进使它成为广泛使用的Java应用服务器之一,适用于各种规模的Web应用程序。
James Duncan Davidson(1970年7月29日出生于得克萨斯州的卢博克市)是美国的一个摄影师,曾经是一名软件工程师。他在担任Sun公司软件工程师期间(1997-2001),开发出了Java的web服务器Tomcat以及构建工具Ant。在2005到2006年间,Duncan开发的兴趣和注意力转向了Ruby on Rails。他和Rails领域的著名大师Mike Clark一起合作,Davidson设计及开发了一些相当复杂且健壮性佳的Rails应用。
2005年开始,Duncan把摄影作为了自己的副业。他现在是几个知名科技会议的首席摄影师。
他现在是波兰一个叫Luma Labs的小公司的联合创始人及所有者,专注于生产高质量的相机配件。
1.3 特点
Apache Tomcat 是一个开源的 Servlet 容器和 Web 服务器,它在 Java 开发社区中非常受欢迎。它的主要功能特点包括:
- Servlet 和 JSP 支持
- Servlet 支持:Tomcat 支持 Java Servlet API,使开发者能够创建动态 Web 内容。Servlet 是 Java 编写的服务器端组件,用于处理请求和生成响应。
- JSP 支持:Tomcat 支持 JavaServer Pages (JSP),允许开发者将 Java 代码嵌入到 HTML 中,简化了动态内容生成。
- 支持最新的 Java 标准
- Servlet 和 JSP 规范:Tomcat 定期更新以支持最新版本的 Servlet 和 JSP 规范,例如 Servlet 4.0、JSP 2.3、Servlet 5.0 等。
- Jakarta EE:Tomcat 10 及以上版本支持 Jakarta EE 标准,这些标准是 Java EE 的继任者。
- 高性能
- 连接器:Tomcat 使用高效的连接器(如 NIO 和 APR),提高了请求处理的性能。
- 异步处理:支持 Servlet 3.0 及以上规范中的异步处理功能,可以处理长时间运行的请求而不会阻塞服务器线程。
- 可扩展性和可配置性
- 可配置性:Tomcat 提供了广泛的配置选项,允许开发者根据需要自定义其行为,例如通过
server.xml
和web.xml
文件进行配置。 - 插件和扩展:支持多种插件和扩展,允许用户根据需要扩展 Tomcat 的功能。
- 安全性
- 用户认证和授权:支持标准的用户认证和授权机制,包括基于角色的访问控制。
- 安全配置:提供多种安全配置选项,例如配置 HTTPS、设置安全策略等。
- 管理和监控
- 管理界面:Tomcat 提供了一个基于 Web 的管理界面,用于管理和监控应用程序、配置和性能。
- JMX 支持:通过 Java Management Extensions (JMX),Tomcat 提供了对服务器和应用程序的管理和监控功能。
- 高可用性
- 集群支持:支持集群配置,可以实现负载均衡和高可用性,提高应用的可靠性和扩展性。
- 会话复制:支持会话复制功能,可以在多个 Tomcat 实例之间复制会话数据,提高系统的容错能力。
- 易于集成
- 与其他 Apache 项目集成:Tomcat 可以与其他 Apache 项目(如 Apache HTTP Server、Apache Maven 等)集成,形成更完整的解决方案。
- 与 CI/CD 工具集成:可以与持续集成和持续部署(CI/CD)工具集成,支持自动化部署。
- 开源和社区支持
- 开源:作为 Apache 软件基金会的项目,Tomcat 是开源的,任何人都可以免费使用、修改和分发。
- 社区支持:拥有活跃的用户社区,提供支持、文档和资源,帮助解决问题和获取最新信息。
这些功能特点使得 Tomcat 成为一个灵活、强大且可靠的 Java 应用服务器,适用于各种规模的 Web 应用程序。
1.4 工作原理
Tomcat是一个流行的Java Servlet容器,它遵循Java Servlet规范来处理Web应用程序。以下是Tomcat的工作原理概述:
-
启动Tomcat服务器:
- 当Tomcat服务器启动时,它会初始化其核心组件,包括连接器(Connector)、请求处理器(Request Processor)、容器(Container)等。
-
监听端口:
- Tomcat通过连接器(Connector)监听HTTP请求。默认情况下,它监听8080端口,但这个端口号可以在
server.xml
配置文件中修改。
- Tomcat通过连接器(Connector)监听HTTP请求。默认情况下,它监听8080端口,但这个端口号可以在
-
接收请求:
- 当客户端(如Web浏览器)发送HTTP请求到Tomcat服务器时,连接器接收这个请求并将其传递给请求处理器。
-
请求处理:
- 请求处理器负责将请求分发到相应的Servlet或JSP页面。它首先通过请求的URL确定请求应该由哪个Web应用程序处理。
-
Web应用程序上下文:
- Tomcat为每个部署的Web应用程序创建一个上下文(Context),它是一个容器,用于管理Web应用程序的生命周期和资源。
-
Servlet和JSP处理:
- 对于Servlet请求,Tomcat会创建一个ServletRequest对象,并通过Servlet容器将请求传递给相应的Servlet实例。
- 对于JSP页面,Tomcat会将JSP页面编译成Servlet,然后像处理普通Servlet一样处理它。
-
执行Servlet:
- Servlet通过覆盖
doGet
、doPost
、doPut
、doDelete
等方法来处理不同类型的HTTP请求。Servlet可以读取请求参数、处理业务逻辑,并生成响应。
- Servlet通过覆盖
-
生成响应:
- 处理完请求后,Servlet会创建一个ServletResponse对象,并将生成的响应(如HTML页面、JSON数据等)写入响应对象。
-
发送响应:
- 请求处理器将ServletResponse对象传递回连接器,连接器将响应发送回客户端。
-
会话管理:
- Tomcat提供了会话管理功能,允许跨多个页面或请求保持用户状态。会话可以通过HTTP会话ID来标识。
-
安全性:
- Tomcat支持基于角色的访问控制和用户认证。它可以与外部认证服务器(如LDAP服务器)集成,以提供安全的访问控制。
-
日志记录:
- Tomcat可以记录请求处理的详细信息,包括访问日志、错误日志等,这对于调试和监控应用程序非常有用。
-
部署和卸载:
- Web应用程序可以通过将WAR文件放置在
webapps
目录中自动部署,或者通过Tomcat的管理界面进行部署。应用程序也可以通过删除webapps
目录中的相应文件夹来卸载。
- Web应用程序可以通过将WAR文件放置在
-
集群和负载均衡:
- Tomcat可以配置为集群模式,以支持负载均衡和高可用性。在集群模式下,多个Tomcat实例可以共享相同的Web应用程序,并分发请求。
Tomcat的工作原理体现了其作为Servlet容器的核心角色,它处理HTTP请求、管理Web应用程序的生命周期,并提供了一个平台,使得开发者可以构建和部署基于Java的Web应用程序。
二、下载启动
2.1 环境准备
Java环境是开发者必备的,对于Tomcat更是必需的,因此安装Tomcat前先做好准备工作。可以参考之前jdk安装配置文章。
2.2 下载
进入官网下载页面:https://tomcat.apache.org/
选择需要版本,这里以Tomcat9为例
Tomcat是绿色软件,直接解压就能使用!解压后如图,这就已经安装好了。
注意:Tomcat在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败!(解压后最后将Tomcat文件夹重命名一下,使用原始名字配置环境变量容易出问题)
2.3 配置环境变量
右击“我的电脑” >> 选择“属性” >> 单击左侧栏 “高级系统设置” >>“高级”>>“环境变量”,如图:
新建CATALINA_HOME变量
变量名:CATALINA_HOME
变量值:D:\DProgram\apache-tomcat-9.0.95
配置path路径
%CATALINA_HOME%\bin
2.4 启动
双击bin目录下的startup.bat
,弹出如下窗口,表示Tomcat启动成功
不要关闭。打开浏览器在地址栏输入“localhost:8080
”或者“127.0.0.1:8080
”回车,出现Apache Tomcat主页说明Tomcat已经成功启动。
设置编码
上述启动页面乱码,因为在中国的Windows系统默认编码都是GBK
,而Tomcat默认编码是UTF-8
,导致乱码
修改后,就没有出现乱码了:
2.5 停止服务
- 方法一:强制关闭
直接叉掉运行窗口,缺点:数据容易丢失 - 方法二:运行
shutdown.bat
文件,正常关闭不会造成数据丢失,缺点:比较麻烦 - 方法三:
Crtl+C
,正常关闭不会造成数据丢失,推荐使用
2.6 卸载
直接删除Tomcat文件夹即可,如果配置了环境变量,还要将环境变量进行删除
2.7 其他配置
修改默认端口
小知识:
- 端口号的范围是:
0~65535
- HTTP协议默认的端口号是
80
,如果将Tomcat的端口号改为80后,使用浏览器访问Tomcat就只需要输入localhost了
端口号被占,报错:
三、拓展—部署项目
直接将你的Web项目复制到webapps目录下,就部署完成了
然后启动Tomcat即可直接使用浏览器进行访问了(但是只能在你本机所在的局域网上进行访问,想要其他人都能访问需要获取域名,这个以后再详细学习)