wood burning stoves*
The moose likes Servlets and the fly likes Instance Vs Static in Servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Instance Vs Static in Servlet" Watch "Instance Vs Static in Servlet" New topic
Author

Instance Vs Static in Servlet

Mark Henryson
Ranch Hand

Joined: Jul 11, 2005
Posts: 200
Hi,

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.
David O'Meara
Rancher

Joined: Mar 06, 2001
Posts: 13459

It is typically better not to use either instance or static variables. Part of the answer about 'multiple instances' can be found in this thread.
Mark Henryson
Ranch Hand

Joined: Jul 11, 2005
Posts: 200
Hi,

I couldn't understand from that post(the link given by you).

Sure, I will avoid static and instance var in my program. But why? I just want to know the reason.
samdeep aarzoo
Ranch Hand

Joined: Jun 09, 2005
Posts: 160
In servlet: A servlet that does not declare SingleThreadModel usually has one and only one instance, shared among all concurrent requests hitting that servlet.

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
Satish Chilukuri
Ranch Hand

Joined: Jun 23, 2005
Posts: 266
Hi Mark,

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 ]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Instance Vs Static in Servlet
 
Similar Threads
State true or false...
Static & Class Variables
Non staic variable
SingleThreadModel
Basic question: how many servlet instance are created ?