Tomcat: Java Static Variable Scope, Application or

2019-04-05 02:12发布

问题:

Are java static variables shared across all sessions using the same webapp or does each session gets its own version of the static variables?

To put it another way, do Tomcat created a new set of classes for each session or just one set for the whole web app?

回答1:

Tomcat creates one ClassLoader for each web application, i.e. war-File or context. So every Class is loaded once for the web application. Therefore static variables are shared across multiple sessions and requests.

References:

  • Apache Tomcat 7 Classloader Howto


回答2:

Static variables are shared across the sessions. Be careful of using static variables.