关于虚拟路径。在学习javaweb的培训课程,今天老师给出了这样一个场景。
当我们的项目,在有一个项目不同的目录的时候,我们如何去使用tomcat去管理web项目。
老师提出的解决方案是 利用虚拟路径的方式,并且按照如下方式对tomcat进行配置。使得
tomcat可以管理不同目录上的项目。
我的问题:项目不是转换成war包发布到tomcat上吗,然后放在了webapps目录下面吗?
或者直接把项目放置webapps下面。
1.为什么有可能出现 管理不同目录下的web项目呢?
2.上面两种方式,处理web项目的发布都可以tomcat服务器的网站可以访问。那么上面两种
方式有什么区别?
那么我最终的我理解是,Tomcat毕竟是服务器web项目管理软件,那么有可能会出现,服务器的某个
盘符容量不够的情形。
那么通过虚拟路径的方式来管理不同盘符下的web想目便有了它的意义。
贴上配置方式:
虚拟路径 : 将其他位置的web添加到tomcat中进行管理
* 浏览器访问: http://localhost:8080/web3/1.html
* 方式1:需要给tomcat进行配置
* 位置:%tomcat%/conf/server.xml
* 结构(内容)
<Server port="8005" shutdown="SHUTDOWN"> #表示服务配置,相当于酒店
<Service name="Catalina"> #具体服务,比如:吃饭
<Connector port="8080" protocol="HTTP/1.1"/> #连接,比如:服务器员
<Connector port="8009" protocol="AJP/1.3"/>
<Engine name="Catalina" defaultHost="localhost">#引擎:后厨
<Host name="localhost" appBase="webapps"> #主机:梁师傅
### Host的名称必须唯一
</Host>
<Host name="www.itheima.com" appBase="webapps"> #主机:康师傅
</Host>
</Engine>
</Service>
</Server>
* 配置内容
在<Host>标签内部配置如下code:
<Context path="web3" docBase="F:/web"/>
#####所以此处类似于添加了一种映射关系,让tomcat server可以通过path值来访问docbase的实际位置下的项目
* 浏览器访问: http://localhost:8080/web3/1.html
* 方式1:需要给tomcat进行配置
* 位置:%tomcat%/conf/server.xml
* 结构(内容)
<Server port="8005" shutdown="SHUTDOWN"> #表示服务配置,相当于酒店
<Service name="Catalina"> #具体服务,比如:吃饭
<Connector port="8080" protocol="HTTP/1.1"/> #连接,比如:服务器员
<Connector port="8009" protocol="AJP/1.3"/>
<Engine name="Catalina" defaultHost="localhost">#引擎:后厨
<Host name="localhost" appBase="webapps"> #主机:梁师傅
### Host的名称必须唯一
</Host>
<Host name="www.itheima.com" appBase="webapps"> #主机:康师傅
</Host>
</Engine>
</Service>
</Server>
* 配置内容
在<Host>标签内部配置如下code:
<Context path="web3" docBase="F:/web"/>
#####所以此处类似于添加了一种映射关系,让tomcat server可以通过path值来访问docbase的实际位置下的项目
重启tomcat之后可以在tomcat的服务页面的manager中看到,项目已经部署
既然在上面的截图上面都已经显示了,那么直接在url里面去敲地址也是ok的啦
* 方式2:
* 添加一个配置文件(xml文件),位置:%tomcat%/conf/引擎名称/主机名称/
* Context path就是xml文件的文件名,例如:web4.xml
* 内容:<Context docBase="F:/web"/>
* 访问:http://localhost:8080/web4/1.html
* tomcat默认值:
<Engine name="Catalina"> 引擎名称
<Host name="localhost"/> 主机名称
* 添加一个配置文件(xml文件),位置:%tomcat%/conf/引擎名称/主机名称/
* Context path就是xml文件的文件名,例如:web4.xml
* 内容:<Context docBase="F:/web"/>
* 访问:http://localhost:8080/web4/1.html
* tomcat默认值:
<Engine name="Catalina"> 引擎名称
<Host name="localhost"/> 主机名称
实际上就是在这个目录下配置:E:\DevelopSoftware\apache-tomcat-7.0.42\conf\Catalina\localhost
映射关系就成了:文件名(相当于第一种配置下的path)<->dacBase之间的映射。
上面的方法上解决了将一个不同目录下的web项目添加到了tomcat下进行管理,那么如果是多个项目呢?
<Host name="localhost" appBase="webapps"> 这部分代码是在server.xml中默认配置的代码,很显然
我们可以看出,访问web项目的时候,url是这样的:
http://localhost:8080/ 就可以访问到webapps下面的所有项目。
那么引出虚拟主机的方式。和上面的默认主机的方式类似 如下:
<Host name="主机名称" appBase="F:\mywebapps"> #主机:梁师傅
</Host>
</Host>