Tomcat配置项目直接通过http://ip:port访问

Tomcat配置项目直接通过/访问

遇到一个需求:因为这个域名下只部署了这一个项目,用户想直接通过域名来访问这个项目而不是加一层项目地址。

方式一

修改war文件名:

  1. 将你的war文件重命名为ROOT.war。部署到Tomcat的webapps目录即可。
  2. 如果已经存在ROOT文件夹,删除它,以便Tomcat自动加解压缩并部署ROOT.war。
  3. 启动Tomcat后,项目可以直接通过https://localhost:8080/直接访问。

方式二

修改server.xml文件:在<Host/>添加一个<Context/>并设置path与docBase。

<Context path="/" docBase="../webapps/messenger.war" reloadable="true"/>

或者

<Context path="/" docBase="/messenger" reloadable="true"/>

  • path: 指定Web应用程序的上下文路径,即在URL中访问应用程序的路径。例如,path="/myapp" 将使应用程序在 http://localhost:8080/myapp 上可用。

  • docBase: 指定Web应用程序的根目录,可以是WAR文件的路径或已解压的目录。例如,docBase="/path/to/myapp.war" 或 docBase="/path/to/myapp"。

  • reloadable: 指示是否支持应用程序的自动重新加载。设置为 true 表示支持自动重新加载,便于开发时的快速部署。默认值是 false。

注意

这种方式webapps下面一个war包可以会生成两个文件夹,一个是ROOT,一个是应用程序的目录。这两个目录下的文件是相同的,也就是**tomcat把这项目加载了两次**,一个是/访问,一个是/应用程序访问的,这两套是相互隔离的。

解决方案

<Context path="/" docBase="${catalina.base}/apps/messenger.war" debug="0" reloadable="true"/>

不把war包放入到webapps中,而是而是通过docBase来指定war的路径,这样tomcat只会在webapps内生成一个ROOT目录。

相关推荐
Helix2504 分钟前
移动端浏览器内核之争:iOS 为何强制使用 WebKit?
ios·safari·webkit·wkwebview·浏览器内核·blink·ios浏览器内核
ZealSinger11 小时前
Java虚拟线程上线后瓶颈转移到哪看三层
java·开发语言·firefox
可乐鸡翅yeah_17 小时前
网页端 M3U8 播放器性能监控,怎么看播放卡顿指标
javascript·ffmpeg·音视频·safari·m3u8
可乐鸡翅yeah_17 小时前
M3U8 防盗链 URL‑Token 签名,新手开发实操避坑
开发语言·javascript·ios·音视频·safari
王闯写bug3 天前
tomcat老版本下载tomcat8.5下载
java·tomcat
白帽攻防录3 天前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
njsgcs4 天前
safari局域网读电脑地址,第一次读的到,重载之后就不行,得重启。.local解决办法
前端·电脑·safari
牧瀬クリスだ4 天前
Mybatis-Plus:让CRUD快如闪电
java·spring boot·spring·tomcat·mybatis·yml
晨小安4 天前
ThreadLocal及其内存泄漏问题深度解析
java·jvm·tomcat·哈希表
可乐鸡翅yeah_5 天前
hls.js 切换多个视频源,新手开发常见踩坑
开发语言·前端·javascript·ios·ffmpeg·音视频·safari