Tomcat部署项目
# 05.Tomcat部署项目
我们来看看Tomcat怎么部署项目,Tomcat部署项目的方式一共有三种。
# 方式一
最简单的方法:直接将项目放到webapps目录下即可。
实践:在webapps新建一个文件夹hello,里面新建一个文件,叫做hello.html,添加以下内容:
<font color='red'>
Hello Tomcat!
</font>
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
然后我们访问具体某个项目的时候,没有加上资源名称,那么默认就会寻找index.html文件返回,例如Tomcat已有的项目如下:
webapps
├── docs
├── examples
├── host-manager
├── manager
└── ROOT
2
3
4
5
6
我们访问下docs目录:
其实打开的就是index.html:
# 方式二
修改conf/server.xml配置文件,指定war包所在的位置。
首先我们打开配置文件文件,拉到最后,找到<Host>
标签体
然后我们在 <Host>
标签体中配置如下内容:
<Context docBase="D:\hello" path="/hehe"/>
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>
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 在启动时会读取一系列的配置文件,顺序如下:
- Tomcat 自己的 conf/server.xml
- Tomcat 自己的 conf/web.xml
- Tomcat 自己的 tomcat-users.xml
- Tomcat 自己的 \conf\Catalina\localhost 目录下的 *.xml
- 加载 webapps 目录下的所有项目中的 web.xml
# 一个项目的结构
上面我们用三种方式部署了项目,其实就一个HTML文件,是非常非常简单的项目;实际应用中,一个项目会有很多文件,因此得有一定的结构存放这些文件,例如:
WEB-INF目录:
- web.xml:Web项目的核心配置文件
classes目录:放置字节码文件的目录
lib目录:放置依赖的jar包
这也是早期一个项目中该有的目录结构。