web.xml配置webAppRootKey

本文详细介绍了web.xml文件中webAppRootKey属性的作用及配置方法,包括如何设置项目的绝对路径,并讨论了Spring中WebAppRootListener监听器的应用场景及配置顺序的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

web.xml文件中webAppRootKey属性是web项目的绝对路径,默认值是webApp.root,可以通过System.getProperty(“webApp.root”)来获取属性值或者在配置文件中通过${webApp.root}获得。

<context-param>  
      <param-name >webAppRootKey</param-name > 
     <param-value >webApp.root </param-value > 
</context-param >

Spring通过 org.springframework.web.util.WebAppRootListener 这个监听器来注入项目路径,因此部署在同一个web容器中的项目,要配置不同的param-value(比如”项目名.root”),不然会造成冲突。但是如果在web.xml中已经配置了org.springframework.web.util.Log4jConfigListener这个监听器,则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能。WebAppRootListener要在ApplicationContext的ContextLoaderListener之前,否则ApplicationContext的bean注入根目录值时会发生无法注入异常。
配置WebAppRootListener:

<listener>
        <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>
 </listener>

web.xml中配置及其监听器顺序如下:

<!--注意各监听器的顺序,否则可能会出现上述的${webapp.root}/WEB-INF/log/sshtest.log不存在的异常-->  
    <!-- log4j config path -->  
  < context-param > 
    <param-name >log4jConfigLocation </param-name > 
    <param-value >/WEB-INF/classes/log4j.properties </param-value > 
  </ context-param > 
   <!-- webapp root path -->  
  < context-param > 
    <param-name >webAppRootKey </param-name > 
    <param-value >projectName.root </param-value > 
  </ context-param > 
      <!-- Spring相关的配置 -->
      <context-param >
            <param-name >contextConfigLocation </param-name >
            <param-value >/WEB-INF/applicationContext.xml,
           /WEB-INF/dataBeanContext.xml </param-value >
      </context-param >     

      <!-- log4j config listener -->  
      <listener > 
        <listener-class > 
            org.springframework.web.util.Log4jConfigListener 
        </listener-class > 
      </listener > 

      <!-- 使用ContextLoaderListener初始化Spring容器 -->
      <listener >
           <listener-class >org.springframework.web.context.ContextLoaderListener
            </listener-class >
      </listener >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值