我有一個Tomcat 7 webapp,其中我有兩個不同的ServletContextListener
。在Tomcat應用程序中的不同偵聽器之間從上下文獲取屬性
實施例:
聽者
public class ListenerA implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce){
ObjectA objectA = new ObjectA();
context.setAttribute("objectA", objectA);
}
...
}
監聽乙
public class ListenerB implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce){
ObjectB objectB = new ObjectB();
context.setAttribute("objectB", objectB);
}
...
}
的web.xml
...
<listener>
<description>ListenerA</description>
<listener-class>com.example.web</listener-class>
</listener>
<listener>
<description>ListenerB</description>
<listener-class>com.example.web</listener-class>
</listener>
...
¿web.xml
中的外觀順序是否影響加載進程,或者它們是否加載到不同的線程中?
我想知道是否有可能在ListenerB中從上下文獲取ObjectA。我總是可以將兩個監聽器合併爲一個獨特的監聽器,這樣我就可以將對象A和B都放在同一個監聽器中,但我想知道這是否可行。
我知道我可以從ServletContextAttributeEvent
接口使用attributeAdded
,但是,如果ListenerB在ListenerA之前加載,這是否足以完成這項工作,或者它會失敗嗎?