Tomcat全解析

/ 项目部署

Web服务器

Web服务器是一种通过互联网或内部网络为用户提供网页内容的系统。它处理来自客户端(通常是用户的浏览器)的请求,并返回相应的资源,如HTML页面、图片、视频或其他类型的数据。Web服务器可以指硬件设备,也可以指运行在这些设备上的软件。

  1. Apache HTTP Server

    • Apache是目前最流行的Web服务器之一,支持多种操作系统,包括Unix、Linux、Windows等。
    • 它以其灵活性、强大功能和广泛的社区支持而闻名。
  2. Nginx

    • Nginx是一个高性能的HTTP和反向代理服务器,也作为IMAP/POP3代理服务器使用。
    • 以高效处理静态文件、反向代理请求和负载均衡著称,适合高并发访问场景。
  3. Microsoft Internet Information Services (IIS)

    • IIS是微软提供的Web服务器软件,主要用于Windows环境。
    • 提供了对ASP.NET、PHP等多种技术的支持,并且与Windows生态系统紧密集成。
  4. 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应用程序。

主要特点

配置环境变量

Windows

  1. 找到系统属性设置

    • 右键点击“此电脑”或“我的电脑”,选择“属性”。
    • 点击左侧的“高级系统设置”。
    • 在弹出的“系统属性”窗口中,点击“环境变量”。
  2. 添加CATALINA_HOME变量

    • 在“系统变量”部分,点击“新建”按钮。
    • 变量名输入 CATALINA_HOME,变量值填写你的Tomcat安装目录的完整路径,例如:C:\apache-tomcat-9.0.65
  3. 更新PATH变量

    • 在“系统变量”中找到并选择 Path 变量,然后点击“编辑”。
    • 点击“新建”,然后输入 %CATALINA_HOME%\bin
    • 确认所有窗口的更改。

Apache Tomcat目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
apache-tomcat/
├── bin/ # 包含启动、关闭脚本及工具
│ ├── startup.sh # Unix/Linux下的启动脚本
│ ├── shutdown.sh # Unix/Linux下的关闭脚本
│ ├── catalina.sh # 控制Tomcat的主要脚本
│ └── ... # 其他脚本和可执行文件
├── conf/ # 存储配置文件
│ ├── server.xml # 主要的Tomcat配置文件
│ ├── web.xml # 默认的部署描述符文件
│ ├── context.xml # 用于定义默认上下文参数
│ ├── tomcat-users.xml # 用户名和角色定义
│ └── ... # 其他配置文件
├── lib/ # 存放Tomcat使用的JAR包
│ ├── catalina.jar # Tomcat的核心实现库之一
│ └── ... # 其他库文件
├── logs/ # 存储日志文件
│ ├── catalina.out # 输出日志文件
│ └── ... # 其他日志文件
├── temp/ # 临时文件存放目录
├── webapps/ # Web应用程序部署目录
│ ├── examples # 示例Web应用
│ ├── docs # 文档Web应用
│ ├── manager # 管理Web应用
│ ├── host-manager # 虚拟主机管理Web应用
│ └── ROOT # 默认Web应用
├── work/ # JSP编译后的servlet存放目录
└── NOTICE # 许可证信息

每个目录都有其特定的功能:

配置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 的管理界面,例如:

输入你在 tomcat-users.xml 中配置的用户名和密码进行登录。

webapps目录结构

webapps 是Tomcat默认的Web应用部署目录。当你启动Tomcat时,它会自动扫描这个目录,并对其中的应用进行部署。以下是webapps目录下的典型布局:

1
2
3
4
5
6
7
8
9
10
11
webapps/
├── ROOT/ # 默认Web应用,当访问服务器根路径时加载
├── myapp.war # 一个打包为WAR文件的Web应用
├── myapp/ # 解压后的myapp.war内容
│ ├── index.html # Web应用的主页
│ ├── WEB-INF/ # 存放配置文件和其他资源的安全目录
│ │ ├── web.xml # 部署描述符文件,定义Servlet、监听器等
│ │ ├── classes/ # 包含编译后的Java类文件
│ │ └── lib/ # 包含Web应用所需的JAR库文件
│ └── ... # 其他静态资源和动态内容
└── ...

Web应用的目录结构

每一个Web应用(无论是以解压缩目录形式还是WAR文件形式存在)都应该遵循以下标准结构:

示例

假设有一个名为exampleApp的Web应用,其结构可能如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
exampleApp/
├── index.jsp # 主页
├── images/ # 图片资源
│ └── logo.png # 网站Logo
├── scripts/ # JavaScript脚本
│ └── main.js # 主要脚本文件
├── styles/ # CSS样式表
│ └── style.css # 样式定义
└── WEB-INF/
├── web.xml # 部署描述符
├── classes/
│ └── com/
│ └── example/
│ └── AppServlet.class # Servlet类
└── lib/
└── commons-lang3-3.9.jar # 第三方库

Catalina

“Catalina” 是 Apache Tomcat 的核心组件,它实际上是一个 Servlet 容器的实现,负责加载和运行 Web 应用程序,并处理 HTTP 请求。尽管在Tomcat安装目录下并没有一个直接名为 catalina 的文件夹,但与 Catalina 相关的功能和配置分散在几个关键位置:

  1. bin 文件夹:这个文件夹包含了启动和停止 Tomcat 服务器所需的脚本文件。其中,catalina.sh(Unix/Linux)或 catalina.bat(Windows)是最重要的脚本之一,用于启动、停止以及执行其他管理任务。这些脚本通过调用 JVM 来运行 Catalina。

  2. conf 文件夹:这里存放了多个 XML 配置文件,它们定义了 Catalina 如何运行和如何处理请求。例如:

    • server.xml:这是主配置文件,定义了服务器端口、服务、连接器等。
    • web.xml:提供了默认的部署描述符,为所有部署的应用程序提供默认设置。
    • context.xml:包含上下文级别的初始化参数和其他资源配置。
  3. lib 文件夹:此目录中包含了 Tomcat 运行所需的各种库文件,包括 catalina.jar 和其他相关的 JAR 包,这些都是 Catalina 正常工作所必需的。

  4. logs 文件夹:Catalina 在运行过程中会生成日志文件,这些文件对于监控服务器状态、诊断问题非常有用。常见的日志文件包括 catalina.out,它记录了控制台输出。

  5. work 文件夹:虽然这不是 Catalina 直接相关的文件夹,但它存储了由 Catalina 编译的 JSP 文件和一些临时数据。当应用程序重新加载时,这些编译后的文件可能会被清除并重建。

总的来说,“Catalina”指的是驱动 Tomcat 的核心Servlet容器部分,而与其相关联的资源则分布在上述提及的不同文件夹内。理解这些组成部分有助于更好地管理和优化你的 Tomcat 服务器。

常见部署方式

在Apache Tomcat中部署Web应用程序有几种常见的方式,每种方式都有其适用场景和特点。以下是三种常用的部署方法:

1. 直接放置到 webapps 目录

这是最简单直接的方法。Tomcat的webapps目录是默认的Web应用部署位置。

这种方法非常适合开发环境中的快速测试和部署。

2. 使用Manager App部署

Tomcat提供了一个基于Web的管理界面——Manager App,可以通过它来上传WAR文件进行部署。

此方法适合于远程部署或当不能直接访问服务器文件系统时使用。

3. 修改 server.xml 或创建 context 文件

对于需要更灵活配置的应用程序,可以手动编辑conf/server.xml文件或是在conf/Catalina/localhost/目录下创建一个XML配置文件来定义Context。

Idea关联本地Tomcat

最后注意

如果你之前打开了tomcat,要切记关闭了以后再启动项目,不然端口会被占用,控制台报错