Tomcat:配置虚拟目录或主目录
为了在访问web服务的时候,不需要输入项目名,直接"/"就可以访问的话,需要设置虚拟目录或在ROOT下直接放项目
1、采用虚拟目录的方式
在Host中添加 <Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="/" reloadable="true"></Context>
或
在 conf/Catalina/localhost 中创建ROOT.xml配置
具体配置解释:
1)crossContext多用户共享session的配置
2)docBase项目的虚拟目录,非webapps下
3)path 为浏览器访问目录
注意以下三点:
1)如果path为空或/的话,则会覆盖/webapps/ROOT的项目,导致ROOT下的东西无法访问
2)如果Context的docBase配置在非Webapps目录下的话,有可能出现Cookie和session互窜的问题,比如用户1登录看到用户2的登录信息
3)如果配置了Context,并且docBase中的目录在Webapps下(非ROOT),则会导致项目加载两次
例如:<Context docBase="/wetalk/wss/apache-tomcat-7.0.62/webapps/AAA" path="" debug="0" reloadable="true"/>
因为项目启动时,会自动加载Host中配置的Webapps目录下的项目,且会再次加载Context配置的虚拟目录
2、直接将项目放在webapps/ROOT目录下
这种方式不用配置context就可以使用,比较方便
3、其他说明
1)另外tomcat会生成一个C:\Tomcat\conf\Catalina\localhost目录,里面自动生成了一个ROOT.Xml(root大写)文件,我们打开文件可以看到这些代码: <?Xml version='1.0' encoding='utf-8'?> <Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="" reloadable="true"> </Context> 2)注意:我们创建虚拟目录的时候也是这样来进行设置的,只使context这个标签的path属性不为空。 3)我们设置虚拟目录和主目录,都会在C:\Tomcat\conf\Catalina\localhost目录下生成相应的Xml文件,因此,当我们在 server.Xml里面删除了主目录和虚拟目录的设置后,如果系统还没有生效,这时候我们就要察看一下这个目录下的Xml文件是不是已经被删除了,如果 没有被删除,他还是对tomcat起作用的,我们必须手动删除。 4)基于第3点,通过测试我发现,每当我们访问一个地址的时 候,tomcat首先是到C:\Tomcat\conf\Catalina\ localhost目录下去察看有没有存在主目录或虚拟目录的Xml文件,如果有Xml文件,就按Xml里的路径进行访问,如果没有Xml文件,就到 server.Xml文件里去察看是否配置context标签,如果配置了context标签,则在C:\Tomcat\conf\Catalina\ localhost目录下生成一个对应的Xml文件,以便于下次直接验证而不再访问server.Xml,与此同时打开context里指定的路径,如 果 server.Xml里没有配置context标签,则返回访问错误页面。 5.基于第4点,我们其实可以直接在C:\Tomcat\conf\Catalina\localhost下建立一个Xml文件,用于主目录或者虚拟目录,而不需要去修改server.Xml就可以达到配置主目录和虚拟目录的目的,具体Xml的格式可以如下: <?Xml version='1.0' encoding='utf-8'?> <Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="" reloadable="true"> </Context> 具体是主目录的配置还是虚拟目录的配置取决于path的值。另外主目录文件名必须是ROOT.Xml(root大写),而虚拟目录的文件名称和虚拟目录的名称一致并且为小写,譬如: <?Xml version='1.0' encoding='utf-8'?> <Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="\cms" reloadable="true"> </Context> 以上则定义了一个名为:cms的虚拟目录,同时要将以上文本保存为cms.Xml文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人