I want to know the differences between Static variable and Instance variable in servlet.
Static variable: One per class
Instance variable: One per Instance
In servlet: A servlet that does not declare SingleThreadModel usually has one and only one instance, shared among all concurrent requests hitting that servlet.
So it seems that both instance variable and static variable behaves same in the servlet.
But I got the below defn from the website, which can't understand. Could anybody expain it with one simple example:
The big difference between instance variables and static variables comes when you have configured your servlet engine to instantiate two instances of the same servlet class how?(two instances of same servlet), but with different init parameters. In this case, there will be two instances of the same servlet class, which means two sets of instance variables, but only one set of static variables.
that means if a servlet implements single thread model
than for every request there will be a differnt instance
and for the static and instance variable:
if we are using static variable than you have to synchronize it
because static has only one copy
i think this will sortout your some part of problem
Even if you dont' implement the SingleThreadModel, you can make the container create multiple instances of a servlet class by having multiple servlet declarations for the same servlet class. For example if you have:
then the container will create two instances of MyServletClass. The thread pointed to by David discusses in part why we may need to have multiple servlet decalarations for the same servlet class.
[ September 27, 2005: Message edited by: Satish Chilukuri ]