从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • 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入门

    • JavaWeb
  • Spring

  • 主流框架

  • SpringMVC

  • SpringBoot

  • Java并发

  • Java源码

  • JVM

  • 韩顺平

  • Java
  • 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

​![]​(https://image.peterjxl.com/blog/image-20211023111725-f3qwgsa.png)​

访问该项目:/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

​![]​(https://image.peterjxl.com/blog/image-20211023112817-c6p9bmu.png)​

‍

‍

‍

但如此做法,修改了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包

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

‍

在GitHub上编辑此页 (opens new window)
上次更新: 2023/5/16 08:48:08
Tomcat配置
IDEA新建JavaWeb项目

← Tomcat配置 IDEA新建JavaWeb项目→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式