2010-07-11 76 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一樣可變的話。