Tomcat映射虚拟目录的三种方式(2021版)
前言:首先要弄明白什么是TOMCAT的虚拟目录:当WEB应用开发完毕后,如果想要对外发布就需要部署到服务器上面,服务器的主要功能就是需要监听端口、接收和解析访问请求并转发给相应的WEB应用进行处理。比如用户访问A应用(https://host:port/A)时,那么服务器就需要找到应用名A和WEB应用的映射关系,以便服务器能够正确地转发客户访问请求到WEB应用,这个应用名A就是一个虚拟目录,这个虚拟目录映射到WEB应用所在的目录;我们把将虚拟目录与WEB应用所在目录的映射过程称为虚拟目录的映射。
一、TOMCAT服务器的自动映射
TOMCAT有个webapps目录且会自动管理该目录下的所有web应用,并把它映射成虚拟目录。换句话说只要你把WEB应用项目放到这个webapps目录下,启动服务器后外界可以直接访问。日常开发中,我们需要把WEB应用打包成war包后放到这个webapps目录下,启动服务器后会自动解压缩到当前目录中。比如我们把JavaWebDemo.war放置到webapps目录下,启动服务器后,会解压成JavaWebDemo目录并映射成一个同名虚拟目录"/JavaWebDemo",然后就可以通过https://host:port/JavaWebDemo访问了。
二、在server.xml中的Host元素进行配置Context
首先看下面这个配置,特别是Context元素。可以简单的理解为一个WEB应用对应一个Context元素。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /><Context path="/JavaWebDemo" docBase="C:/Users/Administrator/Desktop/JavaWebDemo" />
</Host>
Context元素的作用就是虚拟目录的映射,该元素有两个属性:path和docBase
- path:用来配置虚拟目录名称,必须以"/"开头;
- docBase:WEB应用所在的物理路径;
以后访问"/JavaWebDemo/index.jsp"时,根据虚拟目录的映射,相当于访问"C:/Users/Administrator/Desktop/JavaWebDemo/index.jsp"。
注意:这种方式虽然可行,但Tomcat官方以不推荐,原因如下,大家了解下即可:
- 在server.xml中配置的任何元素和属性,在重启服务器后server.xml才会被重新加载配置才可以生效;
- 这种配置方式容易被默认的Context元素重写;
三、基于$CATALINA_BASE/conf/[enginename]/[hostname]的虚拟目录映射
这里首先需要首先借助下面的图来理解下什么是CATALINA_HOME和CATALINA_BASE。一个服务器可以配置多个WEB应用,可以简单理解为CATALINA_HOME就是服务器安装目录,一个WEB应用对应一个CATALINA_BASE(TOMCAT实例),由于此次不涉及多实例多应用,那么也可以把CATALINA_BASE理解为服务器安装目录。
接下来看一下enginename和hostname,可以借助server.xml中的Engine元素中的配置理解下;那么$CATALINA_BASE/conf/[enginename]/[hostname] -> tomcat安装目录/conf/Catalina/localhost
<Engine name="Catalina" defaultHost="localhost"><Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /><Context path="/upload/images" docBase="C:/Users/Administrator/Desktop/a" /></Host>
</Engine>
好的,了解完以上常识,下面进入该映射配置正题:
简单来说就是要在$CATALINA_BASE/conf/[enginename]/[hostname](tomcat安装目录/conf/Catalina/localhost)下新建一个JavaWebDemo.xml,内容如下:
<Context docBase="C:/Users/Administrator/Desktop/JavaWebDemo" />
虚拟目录的映射中path取自为文件名,即JavaWebDemo.xml -> JavaWebDemo。"docBase"取自文件中的docBase配置的属性值;
总结:
- TOMCAT服务器映射虚拟目录需要两个必要信息来建立映射:虚拟路径名称、WEB应用所在目录;
- 以上三种方式无非通过不同的方式来告诉TOMCAT服务器必要信息来映射虚拟目录;
- 以上三种方式各有利弊,具体问题具体分析即可;
以上,完了!
Tomcat映射虚拟目录的三种方式(2021版)相关推荐
- git工具 将源码clone到本地指定目录的三种方式
git工具 将源码clone到本地指定目录的三种方式 CreationTime--2018年7月27日15点34分 Author:Marydon 1.情景展示 运行git-bash.exe,输入命令: ...
- 在Tomcat配置JNDI数据源的三种方式
转载自 在Tomcat配置JNDI数据源的三种方式 在我过去工作的过程中,开发用服务器一般都是Tomcat,数据源的配置往往都是在applicationContext.xml中配置一个dataSo ...
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
系统版本:centos6.5版本 java版本:1.7 一.准备工作 1.java -version 检查是否有java环境,没有则需要去安装并配置到环境变量中. 2.下载tomcat包,下载地址:h ...
- tomcat部署web应用的三种方式(转)
1.直接放到Webapps目录下 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这 个目录下的应用.也可以将JSP程序打包成一个war包放在目录下 ...
- Tomcat配置虚拟主机的两种方式
1.基于主机名的虚拟主机配置 在随意盘符下建立一个目录作为虚拟地址的目录.例如:F:\virtualhost1,在其下建立 test1.html,写入内容例如:test 在tomcat/conf/se ...
- Tomcat 映射虚拟目录
2019独角兽企业重金招聘Python工程师标准>>> 运行环境:Tomcat6.0,eclipseMars 实现方法 (建议)方法1.%TOMCAT_HOME%/conf/serv ...
- Tomcat部署web应用的三种方式
原文:http://my.oschina.net/sunchp/blog/90235 一:相关概念 CATALINA_HOME:tomcat安装目录 CATALINA_BASE:tomcat工作目录 ...
- 【转】Apache 配置虚拟主机三种方式
Apache 配置虚拟主机三种方式 原文博客http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html 一.基于IP 1. 假设 ...
- 简单介绍apache虚拟主机配置的三种方式
本文主要介绍了apache虚拟主机配置的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 记事本打开httpd.conf文 ...
最新文章
- 2021年春季学期-信号与系统-第八次作业参考答案-第八小题
- 【转】Impala导出查询结果到文件
- Ubuntu 14.04 登陆界面循环问题解决
- 12.IDA-虚函数和虚表
- 前端学习(2217):react元素渲染之时钟
- LeetCode 911. 在线选举(二分查找)
- 过拟合解决方法之L2正则化和Dropout
- 协议圣经 RTSP(三)
- css3直线运动_纯css3实现曲线运动——贝塞尔曲线(cubic-bezier)
- 传微软移动设备部门开始扩招员工
- apache+php
- BestCoder Round #75
- javascript中的滚动到顶部和Scroll有关的方法
- kalipython图形界面_Kali入侵入门版笔记!!!
- 矩阵分析与应用(二)
- 如何选取适合自己的三维扫描仪
- androidx86编译踩坑
- 春秋战国时期灭了三个国家的陈国女人
- MySQL--基础知识点--64--等值连接/自连接/自然连接/外连接
- 逻辑斯蒂分布模型、二项逻辑斯蒂回归模型、多项逻辑斯蒂回归模型
热门文章
- vs2015企业版密钥
- iOS : 静态库(.framework)合并
- android中实现“再按一次退出”功能
- Linux本地无法登录,远程却可以登录
- [Node.js] 模块化 -- http服务器模块
- JS-图片其他事件-Event对象-事件委托-DOM对象
- 入门机器学习(三)--课后作业解析-线性回归(Python实现)
- OmniVision的CMOS 图像传感器技术发展路线
- C语言图像处理二值图细化,Visual C 实现二值图像处理
- scala java抽象理解_Scala学习笔记(五) 抽象类以及类中的一些语法糖