Tomcat设置虚拟目录的方法

转载 2015年11月21日 11:15:17

tomcat版本:apache-tomcat-7.0.42

参考:http://blog.csdn.net/pangdingshan/article/details/7214786

一、虚拟根目录

1.    Tomcat 的默认根目录:D:\apache-tomcat-7.0.42\webapps\ROOT

2.    只能有一个默认根目录

3.   一个 默认根目录只能映射一个 “文件系统目录”

启动Tomcat后,在浏览器地址栏输入:http://localhost:8080/,访问的其实就是tomcat虚拟根目录下的index.jsp文件。

二、tomcat怎么设置了虚拟根目录?

在D:\apache-tomcat-7.0.42\conf目录下的server.xml文件的Host元素中,name属性:主机名称,appBase属性:基准目录 ,基准目录下的Root 目录被自动设置为根目录

1
2
3
4
<Host name="localhost"  appBase="webapps"
    unpackWARs="true" autoDeploy="true">
    <!-- ... -->
</Host>

三、如果修改虚拟根目录?

在Host元素里,添加Context元素:

1
<Context path="" docBase="D:\test"></Context>

path: 为空代表网站根目录

docBase:可以设置绝对路径,也可设置相对路径,相对路径是相对 appBase 属性所设的目录而言的

此时再访问:http://localhost:8080/,出现404错误页面。因为在test目录下存在1.html文件,在地址栏输入:http://localhost:8080/1.html,可以访问成功。

如果想即使不输入1.hmtl也能默认访问该文件,则需修改:D:\apache-tomcat-7.0.42\conf目录下web.xml文件的<welcome-file-list>元素,将index.hmtl改为1.html,那么访问http://localhost:8080/时就会默认访问1.html

四、虚拟目录(根目录的子目录)

  • 可以设置多个虚拟目录

  • 一个文件系统目录(docBase)可以被映射成多个虚拟目录(path),即不同的path可以对应相同的docBase

  • 虚拟目录名称(path)可以是多级目录结构的形式

  • 一个虚拟目录就是一个独立的web应用程序

五、如何设置虚拟目录?

第1种:修改server.xml(建议使用第二种)

在server.xml文件的Host元素中,嵌套下面两条语句:

1
2
<Context path="/test1" docBase="D:\test" reloadable="true"></Context>       
<Context path="/test2/test" docBase="D:\test" reloadable="true"></Context>

path: 表示虚拟目录的名称(前面的正斜杠“/”可以省略)

docBase:可以设置绝对路径,也可设置相对路径,相对路径是相对 appBase 属性所设的目录而言的

reloadable:表示修改应用程序后,tomcat自动帮你部署(reload),不用重新启动

(注意,设置debug属性后,在tomcat6.0.39不会出现警告,而在tomcat7.0.42会出现警告)

添加后重启tomcat

输入:http://localhost:8080/test1/1.html,可以成功访问。

输入:http://localhost:8080/test2/test/1.html,也可以成功访问

上面例子也说明:一个文件系统目录(docBase)可以被映射成多个虚拟目录(path),虚拟目录名称(path)可以是多级目录结构的形式(/test2/test)

第2种:不修改server.xml,http://my.oschina.net/liangzhenghui/blog/184088



在tomcat文件夹的 conf\catalina\localhost增加project .xml文件
文件内容:
<Context path="/project" reloadable="true" docBase="E:\javastudio\oob" workDir="E:\javastudio\oob\work" />
  • docBase是项目文件夹的web-inf文件夹的上一层目录
  • workDir是指Tomcat解析Jsp转换为Java文件,并编译为class存放的文件夹,设置 在项目文件夹里面,可以避免移植到其他地方首次读取jsp文件需要重新解析 。一般格式:项目文件夹\work
  • reloadable是指可以重新加载,一般设置为true,方便使用,不需要经常重启Tomcat。
以后启动Tomcat,在浏览器输入 http://localhost:8080/project就能访问该项目的welcome文件。
 
***************
为什么要不修改server.xml呢?在Tomcat6的doc帮助文档中,官方是不提倡修改 server.xml来添加虚拟目录的!
       而我认为,以上使用的方法,非常方便于项目的移植,移植后,只有修改docBase和workDir的值就行了,甚至可以去掉workDir这个属性!
 

***************


又发现了一篇不错的文章

转自:http://blog.csdn.net/yiluoak_47/article/details/12503737


首先,我们要知道虚拟目录的好处。虚拟目录不同于原始的Tomcat运行方式,原始的方式是把项目拷贝到webapps下,然后启动tomcat,就可以访问webapps下的项目。我们使用eclipse配置tomcat,实际上的原理也是这种方式。

但这种方式的弊端在于,webapps下的项目不是最新的动态,一旦我们修改了eclipse工作目录下的项目,并不能立刻的反应到 tomcat/webapps下。所以我们不得不编译项目后,清除webapps下的缓存,甚至要移除项目,然后在放进去。这样来回折腾,大大降低了工作 效率。我们只要改动一个小地方,就要重复的进行一次上面的工作。

聪明的人,总是懒惰的。我们想到能不能改变一下当前的方式,有一种更好的方式呢?这时候,虚拟目录就浮现出来。

虚拟目录的作用是把Web的发布目录直接定位到eclipse工作目录下,实现实时更新,实时使用。

 

要配置虚拟目录,我们需要在Tomcat/conf/catalina/localhost下根据项目命名“项目名.xml”,里面的内容:

<?xml version="1.0" encoding="UTF-8"?> <Context path="/cecb2b" docBase="E:\workspace\cecb2b\webContent" workDir="E:\workspace\cecb2b\word" reloadable="true" debug="1"></Context>

 

属性解释:

  path:网络访问名

  docBase:项目实际路径

  wordDir:指定jsp转换为java的存放目录。这样配置,免得移植的时候重新编译jsp

  reloadable:指定当class文件变化的时候,是否重新加载

  debug:是否是调试模式

 

这样,Web发布目录就直接指向了eclipse工作目录下的项目。我们在eclipse下修改代码,只要一构建,tomcat自动重新加载。我们就不用来回移除项目了。

 

最后,我们还可以修改cong/web.xml中的:

        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>

把false改为true。

 

 最后,我们需要注意的是,用eclipse创建Web项目,一定要是动态Web项目,然后在修改项目的一些属性:

1、去掉Project--Build Automatically(自动构建)

2、属性--Builders--除了Java Builder全部勾去(这样项目构建速度大大加快)。

3、属性--Java Build Path--Source--项目名/WebContent/WEB-INF/classes

 

 注意,tomcat7.0和以往不同:

<Context path="/vsearch" docBase="E:/workspace/vsearch2012/WebContent" reloadable="true" debug="5" crossContext="true" /> 

需要注意,xml文件名必须和path的名相同!

Tomcat8.0 虚拟目录配置案例

第一步当然是创建一个文件夹作为虚拟目录,然后在虚拟目录下加入一个项目文件夹.我所创建的虚拟目录的路径为D:\Software_address\TomCat\TomCatVirtual,我在TomCat...
  • jintaohahahaha
  • jintaohahahaha
  • 2015年12月07日 20:16
  • 5160

Tomcat中如何配置首页面,虚拟目录。

每个web应用都会有一个首页面,那么·怎么去配置呢·? 首先只要应用ide去开发的话,例如常见的eclipse,都会在创建web项目时给我们自动创建WEB-INF目录,找到其中的web.xml 编...
  • little_newBee
  • little_newBee
  • 2016年02月01日 12:43
  • 665

tomcat配置虚拟路径的4种方法

在tomcat中,webapp文件夹默认为web应用的根目录。1.在tomcat/conf/server.xml中找到 host标签,在host标签中增加新的元素并设置 Context的元素,其中pa...
  • thinkner
  • thinkner
  • 2009年06月14日 09:53
  • 5706

深入理解Tomcat虚拟目录

我们知道,Web网站中的内容(包括网页,图片,音频文件等)一般都存放在App的目录下。但随着网站内容的不断丰富,用户需要把不同层次的内容组织成网站的子目录。我们通常的做法是在网站主目录下新建子目录,并...
  • shehun1
  • shehun1
  • 2014年08月12日 19:37
  • 25842

IDEA - Tomcat 配置虚拟目录用来存放图片和访问图片

目的配置tomcat虚拟目录用来存放图片和图片的访问;操作步骤1.点击工具栏的运行配置Edit ConfigurationsEdit Configurations2.在弹出的Run/debug Con...
  • LABLENET
  • LABLENET
  • 2016年04月15日 12:53
  • 5828

Tomcat配置虚拟目录及虚拟主机

Tomcat配置虚拟目录及虚拟主机
  • bestcleaner
  • bestcleaner
  • 2016年06月26日 21:41
  • 664

tomcat虚拟路径的配置

在tomcat安装好后,只要把你的web项目copy到%TOMCAT_HOME%webapp下面就可以是使用啦!!其实还有种方法就是设定虚拟目录,即把项目的目录映射到tomcat中。这样做即可以不用重...
  • lyr1985
  • lyr1985
  • 2010年01月04日 10:19
  • 18374

TOMCAT配置虚拟目录

  • 2012年09月13日 12:43
  • 32KB
  • 下载

Tomcat配置虚拟目录

Tomcat虚拟目录的配置
  • Try_go
  • Try_go
  • 2017年02月19日 20:49
  • 99

linux下tomcat7虚拟目录配置

一、tomcat的默认虚拟根目录和虚拟目录 在tomcat安装目录下的webapps的ROOT目录为tomcat默认虚拟根目录,启动tomcat后,在地址栏敲入地址默认访问的是该目录下的index.j...
  • fullbug
  • fullbug
  • 2016年11月14日 15:37
  • 4790
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tomcat设置虚拟目录的方法
举报原因:
原因补充:

(最多只允许输入30个字)