Tomcat的appBase,docBase,path关系

2023-05-16

文章目录

  • 1. 结论在最前面
  • 2. server.xml关于appbase和context配置
    • 2.1. war包在webapps目录下;appbase="webapps";无context配置
    • 2.2. war包在webapps目录下;appbase="";有context配置
    • 2.3. war包在webapps目录下;appbase="webapps";有context配置(相对路径)
    • 2.4. war包在webapps目录下;appbase="webapps";有context配置(绝对路径)
    • 2.5. war包在tomcat根目录下;appbase="";有context配置(/demo)

1. 结论在最前面

结论:

  • 默认情况下(appBase=webapps,无Context标签),会把webapps目录下的war包解压到webapps目录,要带包名访问
  • appBase指定目录下的war包都会被自动解压为对应的包,例如demo.war会被解压到demo目录下。
  • war包位置,是根据appBase + docBase来确定的
  • war包解压的目录,是根据appBase + path来确定的,path为/则默认会解压到ROOT目录,path="/a",则会解压在a目录。
    • ROOT或a目录所在的目录,是appBase来确定的。如果appBase="",则在tomcat根目录;如果appBase=“webapps”,则目录生成在webapps目录下。

在看例子前,要特别注意的是,如果webapps="",则默认tomcat根目录会被发布出来,可以通过http://localhost:8080/conf/context.xml直接拿到context.xml内容,如果恰好我们是使用JNDI数据源,则可能泄露DB的账号密码!

举例:(war包里接收/sample的请求)

  • appBase=“webapps”,没有Context标签。只会默认解压webapps目录下的war包。
  • appBase=“webapps”,docBase="/demo" path="/",war包在webapps/demo.war。这时会启动2遍。第一遍是默认解压webapps目录下的war包;第二遍是根据appBase+docBase(即webapps/demo.war)找到war包,解压到appBase+path(即webapps/ROOT)目录下。
    • 最终在webapps目录下有2个文件件:ROOT和demo
    • 可以通过http://localhost:8080/sample或http://localhost:8080/demo/sample访问
  • appBase=“webapps”,docBase="/demo" path="/a",war包在webapps/demo.war。这时会启动2遍。第一遍是默认解压webapps目录下的war包;第二遍是根据appBase+docBase(即webapps/demo.war)找到war包,解压到appBase+path(即webapps/a)目录下。
    • 最终在webapps目录下有2个文件件:a和demo
    • 可以通过http://localhost:8080/demo/sample或http://localhost:8080/a/sample访问
  • appBase="",docBase="/demo" path="/",war包在tomcat根目录下demo.war。这时会启动2遍。第一遍是默认解压tomcat根目录下的war包;第二遍是根据appBase+docBase(即tomcat根目录下找demo.war)找到war包,解压到解压到appBase+path(即tomcat根目录下的ROOT)目录下。
    • 最终在tomcat根目录下有2个文件件:ROOT和demo
    • 可以通过http://localhost:8080/sample或http://localhost:8080/demo/sample访问
  • appBase="",docBase="/demo" path="/a",war包在tomcat根目录下demo.war。这时会启动2遍。第一遍是默认解压tomcat根目录下的war包;第二遍是根据appBase+docBase(即tomcat根目录下找demo.war)找到war包,解压到解压到appBase+path(即tomcat根目录下的a)目录下。
    • 最终在tomcat根目录下有2个文件件:a和demo
    • 可以通过http://localhost:8080/demo/sample或http://localhost:8080/a/sample访问

2. server.xml关于appbase和context配置

2.1. war包在webapps目录下;appbase=“webapps”;无context配置


启动后:

访问:
http://localhost:8080/demo/sample
demo是包名,要加
结论:

  • webapps目录下的war包会自动解压
  • 访问的时候需要带上包的名字(这里是demo)

2.2. war包在webapps目录下;appbase="";有context配置


启动后:

访问:
http://localhost:8080/sample

结论:

  • webapps目录下的war包会自动解压到tomcat根目录的ROOT文件夹下
  • 由于server.xml中的<Context>标签中path是\,访问的时候不用带包名

2.3. war包在webapps目录下;appbase=“webapps”;有context配置(相对路径)


启动后:
启动会报错,查看日志如下

结论:

  • 去找war包,docBase的目录如果是相对路径,那么就是相对appBase来看的。这里appBase是webapps,那么加上docBase,就是要去找webapps\webapps\demo。
  • 如果这里docBase配置为"/demo",就可以自动解压在webapps目录下,并且通过http://localhost:8080/sample或者http://localhost:8080/demo/sample都可以访问,因为:

此时,如果在webapps目录下再建一个webapps目录,把war包放进去:

启动(war包会解压到tomcat/webapps/ROOT目录下):

访问:
http://localhost:8080/sample

结论:

  • war包的位置是根据appBase + docBase来定的
  • war包会默认解压到webapps目录的ROOT下(看起来ROOT总是在war包的上一层目录)

2.4. war包在webapps目录下;appbase=“webapps”;有context配置(绝对路径)


启动后(在webapps目录下会生成ROOT目录,war包解压到这里):

访问:
http://localhost:8080/sample

结论:

  • 如果docBase是绝对目录,就不再参考appBase,直接去找war包
  • 找到的war包,会自动解压到webapps的ROOT目录下

2.5. war包在tomcat根目录下;appbase="";有context配置(/demo)


启动后,会自动解压demo.war,并且在tomcat根目录下生成ROOT文件夹,同时也会启动2遍

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat的appBase,docBase,path关系 的相关文章

随机推荐

  • 使用SylixOS虚拟串口,实现系统串口自由

    在博客 开启虚拟机第二串口命令行 讲了如何让虚拟机中的串口对接到Windows系统虚拟串口或物理串口 在simulator中并不是所有平台都有第二串口 xff0c 得bsp支持才行 xff0c 而且最多也只能有第二个而不能有第三第四个 对于
  • 大咖说|翼辉丁晓华:我们已经真正意义上感受到了原始创新带来的巨大价值

    大咖说 翼辉丁晓华 xff1a 我们已经真正意义上感受到了原始创新带来的巨大价值 大咖说 是由工控中国策划发起的人物专访类栏目 xff0c 旨在发掘工业控制系统产业链典型企业家代表 行业专家的前沿洞见 xff0c 通过深度访谈对话 xff0
  • 高效工作学习方法四则

    开始做比准备做更重要 xff0c 不要等到条件完全具备才开始 完成比完美更重要 xff0c 尤其是一开始不要最求完美 xff0c 会严重影响完成进度 一个不能完成的工作连完美的前提都丧失了 去做精力管理而不是时间管理 按精力安排工作而不是按
  • 《XXX重点项目质量保证措施》文档模板

    质量保障措施 研制过程中的质量控制在研制过程中 xff0c 不随意更改技术要求 xff0c 对任何技术要求更改 xff0c 都会与用户单位协商 xff0c 得到认可后方可实施 在研制过程中 xff0c 对影响技术性能的关键指标需外协时 xf
  • VDT (virtual device on tcp) 基于tcp通信的虚拟设备工具集

    概要 VDT virtual device on tcp 基于tcp通信的虚拟设备工具集 DOT device on tcp 创建虚拟字符设备 xff0c 通过tcp收发来读写 DTT device to tcp 打开字符设备 xff0c
  • debian11 安装后必备配置

    debian11 安装后必备配置 运行环境 xff1a PVE v7 2 11 CT容器 系统版本 xff1a Debian 11 standard 11 3 1 amd64 tar zst 启动信息 Debian GNU Linux sp
  • RealEvo许可证协议

    一直使用RealEvo V4 0 0版 xff0c 今天因license到期 xff0c 索性一同安装下新版的IDE 当前最新RealEvo IDE版本为 V5 0 5 xff0c V5 0 0 V5 0 3版本存在一些bug xff0c
  • SylixOS该怎么学

    个人整理的SylixOS学习路线和方法 xff0c 会不定期补充 欢迎大家给出建议
  • sparc-sylixos-elf-gcc平台选项

    sparc sylixos elf gcc exe target help The following options are target specific span class token parameter variable m32
  • Ubuntu18.04 方便好用的截图工具

    安装flameshot 下载地址 xff1a https github com lupoDharkael flameshot 安装命令 xff1a sudo apt get install flameshot 配置快捷键 设置 gt 设备
  • SPARC体系下硬浮点编译故障分析

    问题说明 之前extension版的app工程都是用的软浮点编译的 xff0c 在增加姿控算法库后 xff0c 统一改用硬浮点运行 xff0c 发现之前一个浮点数解析不对了 xff0c 排查发现和工程编译选项有关 xff0c 为软浮点时正常
  • SylixOS下DNS配置

    SylixOS下支持DNS xff08 域名解析 xff09 服务 xff0c 既可以通过域名地址来访问网络地址 测试 先进行一个域名解析的测试 xff1a 由上图可知 xff0c 在其他网络配置正确的情况下 xff0c SylixOS可以
  • SylixOS 教培官网上线

    4月末翼辉创建的包括SylixOS教培在内的文档中心已上线 今天SylixOS教培又上线了 Shell 命令手册 和 IDE 使用手册 方便大家学习和查阅SylixOS相关知识点 SylixOS教培官网 https docs acoinfo
  • SylixOS App 运行时出现“vprocRun() error: can not find entry function.”错误提示原因及解决方法

    针对只使用静态库 xff0c 不使用共享库的业务场景 xff0c 如果libsylixos Output目录下的 libvpmpdm so文件被删除 xff0c SylixOS App程序将自动连接libvpmpdm a文件 xff0c 这
  • 【无标题】

    环境变量 xff08 environment variables xff09 是一组键值对 xff08 key 61 value xff09 列表 xff0c 每一项键值对为一个环境变量 xff0c 分环境变量名和环境变量值 xff0c 两
  • c#爬虫-1688官网自动以图搜图

    背景 在1688有个功能 xff0c 就是上传图片 xff0c 就可以找到类似的商品 如下 网址 xff1a https www 1688 com 这时候 xff0c 我们可以使用程序来代替 xff0c 大批量的完成图片上传功能 实现思路
  • 关于大端序和小段序

    Most Significant Byte 指多字节序列中具有最大权重的 字节 wiki中的解释 xff1a Most Significant Bit 是指一个n位 二进制数字中的n 1位 xff0c 具有最高的权值 与之相反的称之为最低有
  • 使用Project进行项目管理

    文章目录 1 Project可以做哪些 xff1f 1 1 功能清单1 2 本文将会涉及到的内容 2 常见操作2 1 设置 xff1a 自动任务2 2 设置 xff1a 任务的时间格式2 3 日历设置 xff1a 项目开始时间2 4 日历设
  • 进销存小程序(一)项目整体功能和设计

    文章目录 1 设计目标2 功能点说明2 1 首页2 2 登陆2 2 1 微信用户和当前用户绑定的过程2 2 2 获取用户信息 2 3 创建店铺2 4 加入店铺2 5 创建商品2 6 商品信息修改2 7 入库管理2 8 出库管理2 9 库存盘
  • Tomcat的appBase,docBase,path关系

    文章目录 1 结论在最前面2 server xml关于appbase和context配置2 1 war包在webapps目录下 xff1b appbase 61 34 webapps 34 xff1b 无context配置2 2 war包在