从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • RSS
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 📖 读书

    • 读书工具
    • 读书笔记
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • RSS
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 📖 读书

    • 读书工具
    • 读书笔记
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • JavaSE

  • JavaSenior

  • JavaEE

  • JavaWeb

    • 服务器软件

      • 什么是服务器软件
      • Nginx 介绍
      • Nginx 的安装和启停
      • Nginx 配置
      • Nginx 配置反向代理
      • Nginx 配置多个反向代理
      • Nginx 配置负载均衡
      • Nginx 配置动静分离
      • Nginx 集群概念
      • Nginx 配置高可用(主从)
      • Nginx 原理
      • Nginx 日志管理
      • Nginx 手册
      • Nginx 系列完结
      • Tomcat 介绍
      • Tomcat 安装和启停
      • Tomcat 配置
      • Tomcat 部署项目
        • 方式一
        • 方式二
        • 方式三
        • 一个项目的结构
      • IDEA 新建 JavaWeb 项目
      • Tomcat 集群
    • 环境管理和配置管理-科普篇
    • Servlet入门

  • Spring

  • 主流框架

  • SpringMVC

  • SpringBoot

  • Java
  • JavaWeb
  • 服务器软件
2023-04-17
目录

Tomcat 部署项目

# 05.Tomcat部署项目

我们来看看 Tomcat 怎么部署项目。

‍

Tomcat 部署项目的方式一共有三种: ‍

# 方式一

最简单的方法:直接将项目放到 webapps 目录下即可。

实践:在 webapps 新建一个文件夹 hello,里面新建一个文件,叫做 hello.html,添加以下内容:

<font color='red'>
    Hello Tomcat!
</font>
1
2
3

‍ 启动 Tomcat,输入:http://localhost:8080/hello/hello.html

​​

访问该项目:/hello ​称为项目的访问路径,也叫虚拟目录,hello.html 称为资源名称

如果有很多资源,可以将项目打成一个 war 包,再将 war 包放置到 webapps 目录下,方便部署,压缩文件的传输比多个文件的传输快很多,这样简化了部署;war 包会自动解压缩成一个目录,删除 war 包,则目录也会删除。

实践:将 hello.html 压缩成一个文件,hello.zip,然后修改后缀名为 war(实际应用中,会用专用的 war 打包工具,这里只是简化)

缺点:虚拟目录名字和文件夹名字一样(不能重命名),而且每次有更新,都需要拷贝 war 包到 webapps 目录 ‍ 即使 Tomcat 正在运行,也可以将 war 包放进去,并且 Tomcat 窗口中会有部署成功的日志:

​​

我们最开始安装 Tomcat 的时候,启动后访问 localhost:8080,其实访问的就是默认项目:Tomcat 自己的 ROOT 项目

apache-tomcat-9.0.73\webapps\ROOT
1

‍ 然后我们访问具体某个项目的时候,没有加上资源名称,那么默认就会寻找 index.html 文件返回,例如 Tomcat 已有的项目如下:

webapps
├── docs
├── examples
├── host-manager
├── manager
└── ROOT
1
2
3
4
5
6

‍ 我们访问下 docs 目录:

​​ ‍

其实打开的就是该目录下的 index.html,我们可以在浏览器中打开这个文件看看,两者是一样的:

​​ ‍

# 方式二

修改 conf/server.xml 配置文件,指定 war 包所在的位置。

首先我们打开配置文件文件,拉到最后,找到 <Host> ​标签体

​​

然后我们在 <Host> ​标签体中配置如下内容:

<Context docBase="D:\hello" path="/hehe"/>
1

docBase: 项目存放的路径

path:虚拟目录,就是 IP 和端口后面的路径,虚拟目录后面的才是资源名称 ‍ 配置完后,<Host> ​标签体内容如下:

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true">

  <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
  <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

  <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
         prefix="localhost_access_log" suffix=".txt"
         pattern="%h %l %u %t "%r" %s %b" />
  <Context docBase="D:\hello" path="/hehe"/>
</Host>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

‍ 然后我们在 D 盘新建 hello 目录,并新建 hello.html 文件,重启 Tomcat 后访问 http://localhost:8080/hehe/hello.html:

​​ ‍

但如此做法,修改了 Tomcat 的默认配置文件,有可能修改失败,导致 Tomcat 软件出错;并且如果人人都这样部署项目,可能会导致冲突等,配置很不安全,不推荐 ‍

# 方式三

在 conf\Catalina\localhost 创建任意名称的 XML 文件,例如 hello.xml

在文件中编写 <Context docBase="D:\hello"/>​

  • 虚拟目录:XML 文件的名称
  • 好处:热部署,例如删除了 xml 文件名或者修改 xml 后缀,就会读取不到该文件;而修改 server.xml 需要重启服务器。强烈推荐该种方法,并且我们后续学习 JavaWeb 开发的时候,也是采用这种做法的。

Tomcat 在启动时会读取一系列的配置文件,顺序如下:

  1. Tomcat 自己的 conf/server.xml
  2. Tomcat 自己的 conf/web.xml
  3. Tomcat 自己的 tomcat-users.xml
  4. Tomcat 自己的 \conf\Catalina\localhost 目录下的 *.xml
  5. 加载 webapps 目录下的所有项目中的 web.xml ‍

# 一个项目的结构

上面我们用三种方式部署了项目,其实就一个 HTML 文件,是非常非常简单的项目;实际应用中,一个项目会有很多文件,因此得有一定的结构存放这些文件,例如:

  • WEB-INF 目录:

    • web.xml:Web 项目的核心配置文件
  • classes 目录:放置字节码文件的目录

  • lib 目录:放置依赖的 jar 包

这也是早期一个项目中该有的目录结构。

——完——

上次更新: 2025/5/5 17:15:09
Tomcat 配置
IDEA 新建 JavaWeb 项目

← Tomcat 配置 IDEA 新建 JavaWeb 项目→

最近更新
01
2025 年 4 月记
04-30
02
山西大同 “订婚强奸案” 将会给整个社会带来的影响有多严重? - 知乎 转载
04-26
03
一个小技巧,让电子书阅读体验翻倍!
04-18
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式