Tomcat appBase[通俗易懂]

<Hostname=”localhost”appBase=”webapps”unpackWARs=”true”autoDeploy=”true”><Contextpath=”project_name”docBase=”/usr/local/…

大家好,又见面了,我是你们的朋友全栈君。

 <Host name=”localhost”  appBase=”webapps”  unpackWARs=”true” autoDeploy=”true”>
        <Context path=”project_name” docBase=”/usr/local/project_name” debug=”0″ reloadable=”true” crossContext=”true”/>  
        <!– SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html –>
        <!–
        <Valve className=”org.apache.catalina.authenticator.SingleSignOn” />
        –>

        <!– Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern=”common” –>
        <Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”
               prefix=”localhost_access_log.” suffix=”.txt”
               pattern=”%h %l %u %t &quot;%r&quot; %s %b” />

      </Host>

现在我们来讨论下:tomcat 中server.xml文件: Host中 appBase 属性和  context中docBase属性的一些工作原理

1、如果你在Host 中的 appBase目录下配置了 如   appBase –对应的是工程的目录

   1.1、<Host name=”localhost”  appBase=”webapps” unpackWARs=”true” autoDeploy=”true”>   –这个是tomcat的默认配置

           tomcat在启动的时候就会将${tomcat_home}/webapps 目录下的所有子目录当成工程;如:在webapps下有子目录project_a 和project_b  他就会tomcat解析成project_a 和project_b 两个工程

2、如果你想tomcat启动后加载你指定目录的下的工程  同时你指定了工程名 如  docBase  对应的是单独的工程

           <Context path=”project_name” docBase=”/usr/local/project_name” debug=”0″ reloadable=”true” crossContext=”true”/>    

          此时tomcat访问如果你访问  http://IP:port/project_name/就能访问到 /usr/local/project_name 下的资源了;

3、如果appBase指定了同一个目录 同时docBase 指向了appBase指定目录的子目录  

        这时就会出现问题,tomcat会对同一个工程启动2次 

启动过程:1、首先tomcat会对webapps下面的所有工程启动一次  ;2、然后启动docBase目录下的工程,此时如果webapps下面刚好有 project_dir工程的话,就会再次被启动 

此时tomcat下就启动了两个一样的工程了  project_dir 和project_name工程; 你在启动tomcat时 在catalina.out日志文件中就会发现日志重复打印了; 

 

appBase 和docBase以 /  开头说明是绝对目录;

转载于:https://my.oschina.net/u/1414315/blog/812445

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125600.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据挖掘的方法有哪些?

    数据挖掘的方法有哪些?数据挖掘的方法有哪些?01数据挖掘方法分类介绍1.预测性——有监督学习2.描述性——无监督学习02数据挖掘方法论1.CRISP-DM方法论2.SEMMA方法论03数据挖掘建模框架的3个原则1.以成本-收益分析为单一分析框架2.以分析主体和客体为视角3.构建全模型生命周期工作模板数据挖掘是一个多学科交叉的产物,涉及统计学、数据库、机器学习、人工智能及模式识别等多种学科,如图1-4所示。01数据挖掘方法分类介绍数据挖掘方法按照来源进行分类显得过于庞杂,而且不便于理解和记忆。按照其目

  • idea 2021.5.3 激活码[在线序列号]

    idea 2021.5.3 激活码[在线序列号],https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • python无人机编程_3d硬金是什么意思

    python无人机编程_3d硬金是什么意思往期本文是双足机器人系列的第三篇,在前面的文章中我们介绍了2D线性倒立摆的基本理论,详见:【双足机器人(1)】线性倒立摆及其运动控制(附代码)在这篇文章中我们要详细介绍3D线性倒立摆的基本…

  • Pycharm怎么改背景颜色(超详细)「建议收藏」

    Pycharm怎么改背景颜色(超详细)「建议收藏」1.首先打开Pycharm,点击file(文件),在点击settings(设置)点击Editor(编辑器),点击ColorScheme(色彩方案),再点击ConsoleColors(控制台颜色)打开控制台颜色之后,看Scheme(方案),下拉找到你自己喜欢的颜色,在下面的框框里面可以看到你换好的颜色的样子,随后再点击OK。最后再点击yes,我们的背景颜色就换好了哈哈哈哈哈希望可…

  • java 删 除文件操作_Java File文件处理 删除文件「建议收藏」

    java 删 除文件操作_Java File文件处理 删除文件「建议收藏」1、删除文件要使用Java删除文件,请使用delete()方法:例如:importjava.io.File;//ImporttheFileclasspublicclassDeleteFile{publicstaticvoidmain(String[]args){FilemyObj=newFile(“filename.txt”);if(myObj.delete…

  • forkjoin用法_数组join方法

    forkjoin用法_数组join方法Fork/Join是一个分而治之的任务框架,如一个任务需要多线程执行,分割成很多块计算的时候,可以采用这种方法。动态规范:和分而治之不同的是,每个小任务之间互相联系。工作密取:分而治之分割了每个任务之后,某个线程提前完成了任务,就会去其他线程偷取任务来完成,加快执行效率。同时,第一个分配的线程是从队列中的头部拿任务,当完成任务的线程去其他队列拿任务的时候是从尾部拿任务,所以这样就避免了竞争。在Java的Fork/Join框架中,使用两个类完成上述操作:  1.ForkJoinTask:我们要使用F

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号