tomcat webapps目录文件都能删吗_详细测试实现Tomcat根域名访问的场景,看这篇文章就够了...

写在前面的话

首先吐槽一下,我发现国内的博客大多是垃圾,完全没有人测试代码,就在那瞎扯淡,如果你看到别的地方说的跟我的文章说的不一样,请以我这篇为准,因为我每个场景都经过N次测试,确保没有问题!

场景是什么?

最近在制作镜像的时候,发现Tomcat的webapps目录下有一个ROOT目录,于是心生好奇,我并没有哪里明显生成这个ROOT目录,为什么会无中生有呢?于是我开始了下面的测试。

先解释为什么会有ROOT?

(1)当你将war包放到webapp是目录下之后,启动Tocmat。(这里以PaaSHelloWorld.war为例说明)

注意,我是在linux系统中测试的,执行bin目录下的startup.sh或者catalina.sh脚本,都是可以的。只是你看到的启动日志不一样,事实上,启动startup.sh脚本的时候,依然调用的是catalina.sh脚本。

上面这样的话,纯粹是帮助小白的,资深码农勿喷

(2)进入到webapps目录下看,此时只有PaaSHelloWorld.war和文件夹PaaSHelloWorld。

(3)如果你在server.xml文件中的Host节点下添加如下内容:

启动tomcat之后,就会发现,webapps目录结构为:

fa6f8b26027e2dd315a8394944b80d22.png

同时实现根域名访问和非跟域名访问

(4)当然,我有额外测试了别的,比如下面这样:

得到的结果和(3)一样。

对上面(3)(4)提到的两种情况,既可以实现根域名访问,也可以实现非根域名访问。

仅实现非根域名访问。

(1)很简单,只需要在server.xml文件中的Host节点下添加如下内容:

此时webapps目录结构为:

f3bf15c480ee455332e8a4aa7e825705.png

只能非根域名访问

仅实现根域名访问

这个问题很多地方都没有说到,经过测试,首先应用的war包放入到除webapps目录以外的其他的目录,本次测试将war包放在/home/qadmsom/apache-tomcat-8.0.16。如下图所示:

e7c7461dd4338fce93a97dc15c9ad117.png

这里说明一下:官网没有tocmat-8.0.16。

然后在server.xml文件中的Host节点下添加如下内容

启动Tocmat之后,查看webapps目录下的内容:

0498cbadd9e7a362fadb2d9538958ef3.png

仅实现根域名访问

实现仅仅根域名访问的方式不只有这一种。有兴趣的自己研究。

最后

这里的原理就是context,有兴趣的小伙伴百度一下吧,这里就不说了,涉及到源码,说太多,这篇文章太长了,后面我会写的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值