Y a-t-il une raison pour laquelle une variable ne peut pas être créée dans un Java ServletContextListener et sa valeur est définie comme pour tout autre. Ce que j'ai, c'est une ArrayList dans une SCL et une méthode dans une autre classe met à jour la ArrayList de temps en temps en utilisant des méthodes get et set statiques dans la SCL elle-même. Ma préférence ici est de ne pas utiliser ServletContext pour stocker ArrayList.Utilisation de variables dans ServletContextListener
Aucune nouvelle instance de l'écouteur n'est jamais créée.
code dans le SCL est similaire à ci-dessous:
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;
// ...
}