Tomcat 正式环境下多个Context配置

本文深入解析Tomcat中server.xml文件的HOST和Context配置,阐述不同配置下项目的部署方式及访问路径变化,同时揭示quartz定时器重复执行的原因与解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

终于搞懂了TOMCAT/config/server.xml里关于HOST和Context的问题了!!!!!

起因是因为quartz定时器总是被执行2次,还是同一个线程,查了半天说是加载了两次,虽然改了下是成功了,但是还是有点不明所以!

吃完午饭,无意中,把这个问题整明白了点!

直接上例子:

1.只有Host没有Context

那么会部署tomcat/webapp下的所有项目(或者说文件夹:ROOT,PLAYER,项目1,项目2…)

会直接带上文件夹名字作为属性,

特别提示ROOT的优先级高,会省去ROOT这个名字

即:

localhost:8080/项目1/…

localhost:8080/项目2/…

localhost:8080/(ROOT)xxx

2.指定了一个Context,path=""

那么会将appBase与path拼接, docBase是你文件夹的名字,path是你的访问路径

这里path="" 那么访问路径就是 …(webapps)/方法…(localhost:8080/add)

3.指定了一个Context,path=“xxx”

appBase+path拼接, docBase是你文件夹的名字,path是你的访问路径

这里path=“xxx” 那么访问路径就是 …(webapps)/xxx/方法…(localhost:8080/xxxx/add)

4.指定了多个Context,那就必须都配上path

有多个context,就要配上多个path,这样才能根据不同的项目走不通的路径

也就是说

testa文件夹走的是localhost:8080/aaa/…

testb文件夹走的是localost:8080/bbb/…

注:

autoDeploy=“false” deployOnStartup="false"这两个选项都为true的时候(一般默认autoDeploy为true)

这时候会自动加载/部署

我之前就是这样子配置,所以走了2遍

第一遍:webapp下所有的文件夹部署(虽然我只有一个aaa文件夹)(localhost:8080/aaa/add…)

第二遍:指定aaa文件夹又走了一遍,且path为空(localhost:8080/add…)

这两个域名都能走!!!

Tomcat中给server.xml加入元素

代表了运行在上的单个Web应用,一个可以有多个< Context>元素,每个Web应用必须有唯一的URL路径,这个URL路径在中的属性

path中设定。元素的属性:

path:指定访问该Web应用的URL入口,如:http://127.0.0.1:8080/helloApp1。

docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。

reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。

在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发布阶段将reloadable设为false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值