2010-07-11 48 views
1

是否有任何理由不能在Java ServletContextListener中创建变量,并且它的值设置和获取方式与其他类似。我所拥有的是SCL中的ArrayList,而另一个类中的方法使用SCL本身中的静态get和set方法经常更新ArrayList。我的首选是不使用ServletContext来存储ArrayList。在ServletContextListener中使用变量

完全没有创建监听器的新实例。

代码在SCL是类似于下面:

private static ArrayList<String> strList; 

@Override 
public void contextInitialized(ServletContextEvent contextEvent) { 
    ArrayList<String> temp = someOtherMethod(); 
    setStrList(temp); 
} 

@Override 
public void contextDestroyed(ServletContextEvent contextEvent) {   
} 

public static ArrayList<String> getStrList() { 
    // ... 
    return strList; 
} 

public static void setStrList(ArrayList<String> temp) { 
    this.strList = temp; 
    // ... 
} 

回答

3

你“变”有住的地方,你可以得到它。

如果您在ContextListener是,那么你可以put对象到ServletContextget回来后二话不说可以访问同样的ServletContext中。得到它之后,当然也可以更新它,如果它像ArrayList一样可变的话。