Tomcat映射web工程

一、把web项目copy到%TOMCAT_HOME%webapps下面就OK 了。有种更优秀方法就是设定虚拟目录,即把项目的目录映射到tomcat中。这样项目不需要再放到tomcat下,而且带来方便,方法如下:
1,找到%TOMCAT_HOME%/conf/server.xml,(即tomcat的安装目录下面相关的文件)打开此xml文件,在 <host> </host>之间加入如下代码:

<Context path="" reloadable="true" debug="0" docBase="D:/workspace/test/bin" workDir="D:/workspace/test" crossContext="true" >
</Context>

<Context path="/test" docBase="D:/lala" debug="0" reloadable="true"/>

    docBase是实际路径,这里一般写一个绝对的磁盘路径,当然也可以写相对路径,相对路径是相对于tomcat安装目录的webapps目录的,通常设置虚拟目录的目的是将tomcat的安装和项目的保存分开,所以这里建议你使用磁盘绝对路径,并且这个磁盘路径不时在tomcat安装目录下。workDir是tomcat运行是对JSP文件做编译后的文件,这个文件最好也是分开。
path为虚拟路径,访问时的路径,注意:一定要加“/”。值得注意的是:path可以为"/"那么访问“IP:端口”就可以访问到布置的工程,如果为"/test",那么必须得访问“IP:端口/test”才能访问到,我建议采用第一种方法。不然访问每个工程都得有个虚拟路径,看上去不舒服。可能你会想到如果我有多个工程怎么办?是不是一定得取几个虚拟路径,如果你用一个IP的话那是肯定的。但是如果你把机器多设置几个IP,那么就行了,每个工程占用一个IP,这样层次结构更加清晰。
debug建议设置为0,reloadable设置为true。

只要把<Context path="/Test" docBase="D:/project/workspace/Test/WebRoot"/> 写在</Host>上面一行就OK了!


2,如果在测试中出现404的错误,如果前面配置没有错,可能就是在%TOMCAT_HOME%/conf/web.xml文件中把虚拟路径显示目录给禁止啦,此时可以在web.xml文件中找到
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
将listings的value改为true,然后重新启动tomcat,在输入url,测试成功!


3,如果项目开发完成,准备部署在服务器上时,记住要把第三步中web.xml文件中参数listings的值改为false,这样可以避免把项目的部署路径呈现给使用者!
具体如下:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>


 

二、直接建个映射文件,启动服务器就可以访问。。。。 具体作法 
进到tomcat下conf/Catalina/localhost这个目录,建一个与工程同名的XML文件 
XML的具体代码如下: 
<Context path="/Test" docBase="D://workspace//Test//WebRoot" debug="0" reloadable="true" work="D://Tomcat 5.5//work//Catalina//localhost"> 
</Context>

原文地址:https://www.cnblogs.com/lkskevin/p/2517939.html