Tomcat全解析
Web服务器
Web服务器是一种通过互联网或内部网络为用户提供网页内容的系统。它处理来自客户端(通常是用户的浏览器)的请求,并返回相应的资源,如HTML页面、图片、视频或其他类型的数据。Web服务器可以指硬件设备,也可以指运行在这些设备上的软件。
Apache HTTP Server
- Apache是目前最流行的Web服务器之一,支持多种操作系统,包括Unix、Linux、Windows等。
- 它以其灵活性、强大功能和广泛的社区支持而闻名。
Nginx
- Nginx是一个高性能的HTTP和反向代理服务器,也作为IMAP/POP3代理服务器使用。
- 以高效处理静态文件、反向代理请求和负载均衡著称,适合高并发访问场景。
Microsoft Internet Information Services (IIS)
- IIS是微软提供的Web服务器软件,主要用于Windows环境。
- 提供了对ASP.NET、PHP等多种技术的支持,并且与Windows生态系统紧密集成。
Tomcat
- 尽管严格意义上Tomcat是一个Servlet容器,但它也能作为Web服务器来提供Java应用的内容。
- 主要用于执行Java Servlet和JSP页面,适用于Java Web应用程序。
Web服务器的工作原理
当用户尝试访问一个网站时,用户的浏览器会发送一个HTTP请求到该网站所在的Web服务器。Web服务器接收到这个请求后,根据请求的内容从服务器硬盘中找到对应的文件,然后将这个文件包装成HTTP响应格式返回给用户的浏览器。浏览器解析并显示这个响应内容,从而用户可以看到所请求的网页。
什么是tomcat?
Apache Tomcat [https://tomcat.apache.org/]是一款开源的软件服务器,用于部署和运行 Java Servlet 和 JSP(JavaServer Pages)技术编写的Web应用程序。
主要特点
- Servlet 和 JSP 支持:Tomcat 提供了对 Java Servlet 和 JSP 技术的支持,是开发Java Web 应用的基础。
- 轻量级应用服务器:相比于其他 Java EE 应用服务器(如 WildFly、GlassFish),Tomcat 更加轻量级,专注于Servlet容器功能。
- 易于使用:配置和部署相对简单,适合快速开发和测试环境。
- 扩展性:通过各种插件和附加组件(如连接池、安全增强等),可以满足不同的需求。
配置环境变量
Windows
找到系统属性设置:
- 右键点击“此电脑”或“我的电脑”,选择“属性”。
- 点击左侧的“高级系统设置”。
- 在弹出的“系统属性”窗口中,点击“环境变量”。
添加CATALINA_HOME变量:
- 在“系统变量”部分,点击“新建”按钮。
- 变量名输入
CATALINA_HOME
,变量值填写你的Tomcat安装目录的完整路径,例如:C:\apache-tomcat-9.0.65
。
更新PATH变量:
- 在“系统变量”中找到并选择
Path
变量,然后点击“编辑”。 - 点击“新建”,然后输入
%CATALINA_HOME%\bin
。 - 确认所有窗口的更改。
- 在“系统变量”中找到并选择
Apache Tomcat目录结构
1 | apache-tomcat/ |
每个目录都有其特定的功能:
bin/
目录包含用于启动和停止Tomcat的各种脚本。conf/
目录包含了所有配置文件,这些文件允许你自定义Tomcat的行为。lib/
目录包括了运行Tomcat所需的库文件。logs/
目录保存了各种日志文件,对于调试和监控非常重要。temp/
目录用于存放一些临时文件。webapps/
目录是放置Web应用程序的地方,默认情况下会有一些示例应用。work/
目录是JSP页面转换成Servlet后存放的位置。
配置tomcat用户名和密码
配置Tomcat的用户名和密码主要用于控制对Tomcat管理界面(如Manager App和Host Manager)的访问。这些界面允许用户部署、停止、启动或移除Web应用程序,因此需要设置适当的权限来保护它们。
你需要先关闭tomcat后再进行配置
步骤 1: 编辑 tomcat-users.xml
文件
你需要编辑位于 <Tomcat安装目录>/conf/tomcat-users.xml
的文件。这个文件定义了所有可以登录到Tomcat管理界面的用户及其角色(权限)。
1 | <user username="admin" password="admin" roles="manager-gui"/> |
步骤 2: 保存并重启Tomcat
在完成对 tomcat-users.xml
文件的修改后,保存更改,并重启Tomcat服务器以使新设置生效。
步骤 3: 访问管理界面
现在你可以通过浏览器访问 Tomcat 的管理界面,例如:
- Manager App:
http://localhost:8080/manager/html
- Host Manager:
http://localhost:8080/host-manager/html
输入你在 tomcat-users.xml
中配置的用户名和密码进行登录。
webapps目录结构
webapps
是Tomcat默认的Web应用部署目录。当你启动Tomcat时,它会自动扫描这个目录,并对其中的应用进行部署。以下是webapps
目录下的典型布局:
1 | webapps/ |
Web应用的目录结构
每一个Web应用(无论是以解压缩目录形式还是WAR文件形式存在)都应该遵循以下标准结构:
WEB-INF/: 这是一个特殊的目录,客户端不能直接访问这里的任何文件。该目录包含:
- classes/: 存储Web应用的所有Java类文件(即Servlet、Listener等)。这些类文件通常按照包名组织成子目录。
- lib/: 存放Web应用所需的所有第三方JAR库文件。
- web.xml: Servlet规范规定的部署描述符文件,用来配置Web应用的各种组件和服务,如Servlet映射、过滤器、监听器等。
META-INF/ (可选): 类似于
WEB-INF
,但主要用于存放与Web应用相关的元数据信息,比如MANIFEST.MF
文件。静态资源: 包括HTML页面、CSS样式表、JavaScript脚本、图片等,可以直接由浏览器请求并显示给用户。
示例
假设有一个名为exampleApp
的Web应用,其结构可能如下所示:
1 | exampleApp/ |
Catalina
“Catalina” 是 Apache Tomcat 的核心组件,它实际上是一个 Servlet 容器的实现,负责加载和运行 Web 应用程序,并处理 HTTP 请求。尽管在Tomcat安装目录下并没有一个直接名为 catalina
的文件夹,但与 Catalina 相关的功能和配置分散在几个关键位置:
bin 文件夹:这个文件夹包含了启动和停止 Tomcat 服务器所需的脚本文件。其中,
catalina.sh
(Unix/Linux)或catalina.bat
(Windows)是最重要的脚本之一,用于启动、停止以及执行其他管理任务。这些脚本通过调用 JVM 来运行 Catalina。conf 文件夹:这里存放了多个 XML 配置文件,它们定义了 Catalina 如何运行和如何处理请求。例如:
server.xml
:这是主配置文件,定义了服务器端口、服务、连接器等。web.xml
:提供了默认的部署描述符,为所有部署的应用程序提供默认设置。context.xml
:包含上下文级别的初始化参数和其他资源配置。
lib 文件夹:此目录中包含了 Tomcat 运行所需的各种库文件,包括
catalina.jar
和其他相关的 JAR 包,这些都是 Catalina 正常工作所必需的。logs 文件夹:Catalina 在运行过程中会生成日志文件,这些文件对于监控服务器状态、诊断问题非常有用。常见的日志文件包括
catalina.out
,它记录了控制台输出。work 文件夹:虽然这不是 Catalina 直接相关的文件夹,但它存储了由 Catalina 编译的 JSP 文件和一些临时数据。当应用程序重新加载时,这些编译后的文件可能会被清除并重建。
总的来说,“Catalina”指的是驱动 Tomcat 的核心Servlet容器部分,而与其相关联的资源则分布在上述提及的不同文件夹内。理解这些组成部分有助于更好地管理和优化你的 Tomcat 服务器。
常见部署方式
在Apache Tomcat中部署Web应用程序有几种常见的方式,每种方式都有其适用场景和特点。以下是三种常用的部署方法:
1. 直接放置到 webapps
目录
这是最简单直接的方法。Tomcat的webapps
目录是默认的Web应用部署位置。
- 步骤:
- 将你的WAR文件(Web Application Archive)或者解压后的Web应用目录复制到
<Tomcat安装目录>/webapps/
下。 - 如果你放置的是一个WAR文件,Tomcat会自动将其解压并部署。
- 如果是已经解压的目录,则Tomcat也会识别并部署它。
- 将你的WAR文件(Web Application Archive)或者解压后的Web应用目录复制到
这种方法非常适合开发环境中的快速测试和部署。
2. 使用Manager App部署
Tomcat提供了一个基于Web的管理界面——Manager App,可以通过它来上传WAR文件进行部署。
- 步骤:
- 确保
manager
应用已部署且配置正确(位于<Tomcat安装目录>/webapps/manager
)。 - 访问
http://<服务器地址>:<端口号>/manager/html
,使用具有适当权限的用户登录。 - 在页面上选择“选择WAR文件以上传”部分,浏览找到你的WAR文件,并点击“Deploy”。
- 确保
此方法适合于远程部署或当不能直接访问服务器文件系统时使用。
3. 修改 server.xml
或创建 context
文件
对于需要更灵活配置的应用程序,可以手动编辑conf/server.xml
文件或是在conf/Catalina/localhost/
目录下创建一个XML配置文件来定义Context。
修改
server.xml
:- 在
<Host>
标签内添加一个新的<Context>
元素,指定path
和docBase
属性。
- 在
创建
context
文件:在
<Tomcat安装目录>/conf/Catalina/localhost/
下创建一个与应用名称相同的XML文件(例如myapp.xml
),内容为:1
<Context path="/myapp" docBase="/path/to/myapp" />
这种方法允许你在不重启Tomcat的情况下重新加载应用程序,只需更新相应的配置文件即可。
Idea关联本地Tomcat
- 下载
small tomcat
插件 - 注意:要先close project,然后再在setting->plugins里面下载插件
- 将本地tomcat配置到插件中
- 打开具体项目,进行配置
最后注意
如果你之前打开了tomcat,要切记关闭了以后再启动项目,不然端口会被占用,控制台报错