Tomcat项目不放在webapps下放在别的盘符目录下的配置

发布时间 2023-06-22 19:50:10作者: 哩个啷个波

一、

项目不放在tomcat下的webapps下,而是放在别的盘符路径下,在service.xml中加以配置即可,配置如下:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
 
<Context path="/hello" docBase="D:\workspace\hello\WebRoot" debug="0" rivileged="true"/>
<Context docBase="E:/cms_xml" path="/xml" />
 
</Host>

host标签中的name是请求的IP,context标签中path是IP和端口后接的访问路径,docBase是项目所在的跟路径

第二个context是对应到本地文件夹,把上传的图片或者自己生成的xml文件放在这个文件夹下,对外提供访问路径。

二、

还有一种配置方式是下面这种,host标签中appBase填项目的根路径,name填请求的ip,context中displayName填项目根目录,workDir填项目work文件夹路径。

<Host appBase="E:\zzcyh\webapp" name="127.0.0.1">
    <Context displayName="WebRoot" docBase="" path="" reloadable="true" workDir="E:\zzcyh\work"></Context>
</Host>
        
    
<Host appBase="E:\cmes\WebRoot" name="127.0.0.2">
    <Context displayName="WebRoot" docBase="" path="" reloadable="true" workDir="E:\cmes\work"></Context>
</Host>
 
<Host appBase="E:\xdd\webapp" name="127.0.0.3">
    <Context displayName="webapp" docBase="" path="" reloadable="true" workDir="E:\xdd\work"></Context>
</Host>

work文件夹在tomcat下有这个文件,有些人把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录。path:是访问时的根地址,表示访问的路径,可以自定义,如上述例子中,访问该应用程序地址如下:http://localhost:8080/jfinal_demo; docbase:表示应用程序的路径,docBase可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps ;reloadable:表示可以在运行时在classes与lib文件夹下自动加载类包。这个属性在开发阶段通常都设为true,方便开发;在发布阶段应该设置为false,提高应用程序的访问速度 ;

客户端访问jsp的流程:

当客户端第一次访问jsp时tomcat会在work目录里把这个jsp页面转换成.java文件,比如将index.jsp转换为index_jsp.java文件,而后编译为index_jsp.class文件,最后tomcat容器通过ClassLoader类把这个index_jsp.class类装载入内存,响应客户端。以后的每次访问不需要再转换和编译,这也是为什么第一次访问很慢,后面访问会很快的原因.

想了解更多service.xml文件,可以看这篇文章:详解Tomcat 配置文件server.xml