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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在 Visual Studio 中配置 Eigen库

    在 Visual Studio 中配置 Eigen库VisualStudio配置Eigen库

    2022年8月31日
    2
  • js统一全局变量

    js统一全局变量      前言:js中难免要用到全局变量,但是过多的全局变量会影响js的性能,在此我创造了一个统一全局变量的写法,只需要这一个全局变量即可/***全局变量管理器*/varoverallManager=(function(){ //存储全局变量,闭包保护不受污染 varoverall={}; /** *@paramname *…

    2022年5月28日
    42
  • GridView使用RenderControl取得HTML的问题[通俗易懂]

    GridView使用RenderControl取得HTML的问题[通俗易懂]
    如果想在CodeFile中取得GridView结果的HTML内容,首先会遇到这样的错误讯息:
     型别’GridView’的控制项’GridView1’必须置于有runat=server的表单标记之中。
    这个问题,可以在您的CodeFile中加入以下这段来解决Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)      ‘处理’GridView’的控制项’GridView’必须置

    2022年7月20日
    10
  • java 读音_java怎么读?[通俗易懂]

    java 读音_java怎么读?[通俗易懂]展开全部US/ˈdʒɑː.və/;UK/ˈdʒɑː.və/。【N-UNCOUNT】Java语言(一种计算机语言,尤用于创建网站)62616964757a686964616fe59b9ee7ad9431333366306461Javaisacomputerprogramminglanguage.Itisusedespeciallyincreatingwebsites.例…

    2022年7月7日
    37
  • 做了6年的Java,java简历包装项目经验[通俗易懂]

    高频问题1.上一家公司,你为什么会离职?公司很好,但是公司调整了业务,接下来的发展路线和自己的目标不一致,所以要换工作工作太清闲,学不到知识,我不怕累,就是想多锻炼自己,想找具有挑战力工作公司的管理制度不也是很完善,没有晋升机会,我比较想进步,找一个更好的平台我想去优秀的公司,让自己变得更好2.为什么来我们这里?对原单位充满感恩,这是我人生中非常重要的经历,我认同原单位领导和文化两份工作的本质是一致的,行业和工作性质都有紧密联系选择一份新的工作不代表背叛过去,发扬原公司魅力,同时为了

    2022年4月11日
    340
  • 费曼学习法

    费曼学习法费曼学习法我的理解:费曼学习法就是把学好的东西用简洁易懂的语言,传授给别人举例:你学完微积分,然后自己去培训班,自己做老师,传授给学生们,并且学生们都能听懂费曼学习法的四个步骤:1.确定目标

    2022年7月28日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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