your DB access code should not go in the Servlet... but that is another story. Multithreading and instance variables do always offer the possibilities that something goes wrong IF not proper accessed/synchronized. Method local variables on the other hand are on the stack and are not "visble" to other threads.
That said, there are of course variables that need to be instance level and some that need to be method level...
So what variables (references ?) are you talking about ?
posted 12 years ago
When will i go for instance varriable and when will i go for method varriable? give me some example.
Never use instance variables in servlets to store state. You do not have control over how many instances of your servlet are created; the servlet container controls this.
If you need to store state that needs to be accessible beyond the method in a web application, you should store it as attributes in the session. For example (untested code, it's been a while since I programmed a servlet):
I don't know what you are planning to store, but note that you cannot store database connections in the session this way. You should use a database connection pool for that, and retrieve a connection from the pool each time you need it (and release it back to the pool once you're done with it). [ November 17, 2006: Message edited by: Jesper Young ]