tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felipe Schnack <feli...@ritterdosreis.br>
Subject RE: servlets
Date Tue, 28 Jan 2003 21:29:42 GMT
  This way wouldn't it be more optimized?

public class Test extends HttpServlet
{
 private static MySingleton theInstance = new MySingleton();
 
 public static synchronized MySingleton getInstance() {
   return theInstance;
 }
}

  Anyway, hwo tomcat creates a new instance of a Servlet? My question
started because what I want is a Singleton Servlet. So if tomcat
instantiates it using the following code, and exception will be thrown,
wouldn't it?

  Class test = Class.forName("Test");
  HttpServlet servletInstance = test.newInstance();


On Tue, 2003-01-28 at 19:23, Shapira, Yoav wrote:
> Howdy,
> Tomcat won't touch your singleton at all.  All your servlets will call getInstance()
on the singleton.  The constructor for the singleton is private, and the getInstance() method
looks like:
> 
> private static MySingleton theInstance;
> 
> public static synchronized MySingleton getInstance() {
>   if(theInstance == null) {
>      theInstance = new MySingleton();
>   }
> 
>   return theInstance;
> }
> 
> That way no matter how many servlet instances the container spawns, and no matter how
many of them call getInstance() at the same time, you will only have one instance of your
singleton.
> 
> Yoav Shapira
> Millennium ChemInformatics
> 
> 
> >-----Original Message-----
> >From: Felipe Schnack [mailto:felipes@ritterdosreis.br]
> >Sent: Tuesday, January 28, 2003 4:19 PM
> >To: Tomcat Users List
> >Subject: RE: servlets
> >
> >  yes, I know how to do it (private constructor, etc), but how tomcat
> >will call an getInstance() method instead of create a new instance of
> >it?
> >
> >On Tue, 2003-01-28 at 19:13, Shapira, Yoav wrote:
> >> Howdy,
> >>
> >> >  If I write an servlet and DO NOT implement the SingleThreadModel, I
> >> >have a guarantee that I'll have only one instance of it?
> >>
> >> No.
> >>
> >> >If not, here is
> >> >a way to do this?
> >>
> >> No.
> >>
> >> If you need only one instance of something, put in in a singleton.  Have
> >> your servlets use the singleton.  A google search for "the singleton
> >> design pattern java" will yield many explanations and examples.
> >>
> >> Yoav Shapira
> >> Millennium ChemInformatics
> >>
> >> --
> >> To unsubscribe, e-mail:   <mailto:tomcat-user-
> >unsubscribe@jakarta.apache.org>
> >> For additional commands, e-mail: <mailto:tomcat-user-
> >help@jakarta.apache.org>
> >>
> >--
> >
> >Felipe Schnack
> >Analista de Sistemas
> >felipes@ritterdosreis.br
> >Cel.: (51)91287530
> >Linux Counter #281893
> >
> >Centro Universitário Ritter dos Reis
> >http://www.ritterdosreis.br
> >ritter@ritterdosreis.br
> >Fone/Fax.: (51)32303341
> >
> >
> >--
> >To unsubscribe, e-mail:   <mailto:tomcat-user-
> >unsubscribe@jakarta.apache.org>
> >For additional commands, e-mail: <mailto:tomcat-user-
> >help@jakarta.apache.org>
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <mailto:tomcat-user-help@jakarta.apache.org>
> 
-- 

Felipe Schnack
Analista de Sistemas
felipes@ritterdosreis.br
Cel.: (51)91287530
Linux Counter #281893

Centro Universitário Ritter dos Reis
http://www.ritterdosreis.br
ritter@ritterdosreis.br
Fone/Fax.: (51)32303341


--
To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-user-help@jakarta.apache.org>


Mime
View raw message