"It is not running under its own JVM, but each webapp *does* run under its own classloader. Static variables are global only within the scope of a particular classloader, so each webapp that uses your class gets its own if the class was loaded from WEB-INF/classes or WEB-INF/lib. " -Craig McClanahan, 09/15/2000 If the above is true, then why do I get the SAME VALUE for getTest() when run under different contexts on? The static test is already initialized on the second context that I invoke it under? and this issues only occurs under linux, it works fine under win32. Give the code below: public class StaticTest extends HttpServlet { private static int test = 0; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.getWriter().println(getTest()); } public static int getTest() { if (test == 0) test = new Random().nextInt(); return test; } } Thanks Zach