面试官:您知道tomcat部署项目有几种方式吗?
一 直接将web项目文件件拷贝到webapps目录中二 修改Server.xml文件三 新建xml方式
一 直接将web项目文件件拷贝到webapps目录中
我们一般把项目打成war包 然后放在webapp下 然后点击start脚本启动 war包被自动解压出来 然后部署成功
二 修改Server.xml文件
修改conf目录下的server.xml 在Host标签下添加标签
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/xp" docBase="D:/soft/xp" reloadable ="true" debug="0" privileged="true">
</Context>
</Host>
path:虚拟路径
docBase:应用程序的物理路径
privileged:如果是true,则tomcat会检测应用程序的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的应用程序,在不重启tomcat的情况下改变应用程序,实现热部署;
debug:0表示提供最少的信息,9表示提供最多的信息
三 新建xml方式
在 D:\soft\tomcat6.0\apache-tomcat-6.0.14\conf\Catalina\localhost 目录下新建xp.xml
xml文件内容
<Context path="/xp" docBase="D:/soft/xp" reloadable ="true" debug="0" privileged="true">
</Context>
浏览器访问:localhost:8080/xml文件的名称/访问的文件名称
三种方式最终效果一样的:
有的同学会说 您会的可真多 您说的这些有依据嘛
上tomcat源码:
HostConfig.java
/**
* Deploy applications for any directories or WAR files that are found
* in our "application root" directory.
*/
protected void deployApps() {
File appBase = host.getAppBaseFile();
File configBase = host.getConfigBaseFile();
String[] filteredAppPaths = filterAppPaths(appBase.list());
// Deploy XML descriptors from configBase
deployDescriptors(configBase, configBase.list());
// Deploy WARs
deployWARs(appBase, filteredAppPaths);
// Deploy expanded folders
deployDirectories(appBase, filteredAppPaths);
}
点关注不迷路: