form1.cn
Make a little progress every day

Tomcat配置虚拟目录为主目录--标签

30th of July 2017 Java Java 2556

在默认安装后,tomcat的主目录是webapps/root目录,如果我们想改变tomcat的主目录的话可以这样做:


1.打开C:\Tomcat\conf\server.Xml,在<host></host>之间加入代码:

<Context path="/" docBase="E:\tomcatApp\form1" debug="0" reloadable="true" crossContext="true"/>
//或
<Context path="" docBase="form1" debug="0" reloadable="true" />

path为虚拟路径,访问时的路径,注意:一定要加“/”

debug建议设置为0,reloadable设置为true。


这样重新启动tomcat,我们的主目录就被设置为form1这个项目了。 


2.另外tomcat会生成一个C:\Tomcat\conf\Catalina\localhost目录,里面自动生成了一个ROOT.Xml(root大写)文件,我们打开文件可以看到这些代码:

<?Xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/form1" path="" reloadable="true">
</Context>


3.注意:我们创建虚拟目录的时候也是这样来进行设置的,只使context这个标签的path属性不为空。 


4. 我们设置虚拟目录和主目录,都会在C:\Tomcat\conf\Catalina\localhost目录下生成相应的Xml文件,因此,当我们在 server.Xml里面删除了主目录和虚拟目录的设置后,如果系统还没有生效,这时候我们就要察看一下这个目录下的Xml文件是不是已经被删除了,如果 没有被删除,他还是对tomcat起作用的,我们必须手动删除。 


5.基于第4点,通过测试我发现,每当我们访问一个地址的时 候,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标签,则返回访问错误页面。 


6.基于第5点,我们其实可以直接在C:\Tomcat\conf\Catalina\localhost下建立一个Xml文件,用于主目录或者虚拟目录,而不需要去修改server.Xml就可以达到配置主目录和虚拟目录的目的,具体Xml的格式可以如下:

<?Xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/form1" path="" reloadable="true">
</Context>


具体是主目录的配置还是虚拟目录的配置取决于path的值。另外主目录文件名必须是ROOT.Xml(root大写),而虚拟目录的文件名称和虚拟目录的名称一致并且为小写,譬如: 

<?Xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/form1" path="\cms" reloadable="true">
</Context>


以上则定义了一个名为:cms的虚拟目录,同时要将以上文本保存为cms.Xml文件。


7.以上住目录配置好后就可以按以下地址访问了:

http://localhost:8080/(访问主目录)

http://localhost:8080/cms (访问名为cms的虚拟目录)