File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Servlets and the fly likes SingleThreadModel Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "SingleThreadModel " Watch "SingleThreadModel " New topic
Author

SingleThreadModel

Veda Dhawad
Greenhorn

Joined: Jan 16, 2004
Posts: 4
In the Servlet 2.4 specification SingleThreadModel has been deprecated, why?
Debashish Chakrabarty
Ranch Hand

Joined: May 14, 2002
Posts: 226

This article has summed it up nicely:
It was generally agreed that SingleThreadModel was a false friend that allowed a servlet developer to believe that they did not need to be concerned about synchronization and threading. Unfortunately this mechanism only makes this true for instance variables of the servlet itself and does not offer any protection for access to sessions, datasources or any other shared resources. As passing parameters between methods via instance variables is hardly best OO practise, there is no real benefit from this interface. However it does result in some significant additional implementation complications for containers.


Debashish
SCJP2, SCWCD 1.4
jyothi godavarthy
Ranch Hand

Joined: Jan 28, 2004
Posts: 135
Then whats the best alternative to make the instance variables thread safe.
William Brogden
Author and all-around good cowpoke
Rancher

Joined: Mar 22, 2000
Posts: 12769
    
    5
If you absolutely have to use instance variables, then use synchronized methods or blocks. Writing servlets requires a considerable mental shift from writing single-user, single-Thread applications. I think SingleThreadModel was used because people just had not managed to make that mental shift.
Bill
Ken Krebs
Ranch Hand

Joined: Nov 27, 2002
Posts: 451
The best way to make your servlets threadsafe is to keep them reentrant by not using any instance variables. If you need to save data for use between requests and your servlet is an HttpServlet, you can save it in the HttpSession.


kktec<br />SCJP, SCWCD, SCJD<br />"What we observe is not nature itself, but nature exposed to our method of questioning." - Werner Heisenberg
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: SingleThreadModel