我有一个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之前加载,这是否足以完成这项工作,或者它会失败吗?