Re: static method and variables in servlets and APIs' classes
Stanimir Stamenkov wrote:
Mon, 18 Feb 2008 10:00:44 -0800 (PST), /Garg/:
In my current project i found that a large number of methods are
public static. I am not getting why we need static methods and
variables in servlets and apis' as we all know that on each request a
new instance of servlet is been created.
Speak for yourself, I know just the opposite: while not requirement
(AFAIK) a single servlet instance handles all the requests. Tagging a
servlet class with the SingleThreadModel [1] interface may make the
servlet container create different servlet instances to handle the
different requests but may synchronize the access to a single servlet
instance, also.
[1]
http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/SingleThreadModel.html
It is also possible that the servlet container creates multiple instances of a
servlet, but not nearly as many as there are requests. This is true for
clustered servers, for example, and certainly useful for multi-processor
systems. You very well could see one servlet instance per processor hardware
thread or core. You could theoretically see more than one instance per core,
if a server were smart enough to figure out that I/O or other blocking
operations would make that more efficient.
The bottom line is that you cannot count on there being more than one instance
of a servlet active at a time, nor can you count on there being only one.
--
Lew