This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Servlets and the fly likes Constructor And Static block Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "Constructor And Static block" Watch "Constructor And Static block" New topic
Author

Constructor And Static block

Neeraj Vij
Ranch Hand

Joined: Nov 25, 2003
Posts: 315
is it a good practice to have static blocks and constructor in servlets. if both are used, what issues might be faced by the servlet in terms of concurancy.


For example

Vijitha Kumara
Bartender

Joined: Mar 24, 2008
Posts: 3817

is it a good practice to have static blocks and constructor in servlets. if both are used, what issues might be faced by the servlet in terms of concurancy.


I think it won't have any issues with regards to concurrency. Container make sure that servlets are ready to serve any request after being properly initialized.


SCJP 5 | SCWCD 5
[How to ask questions] [Twitter]
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60794
    
  65

Bad idea. Servlets don't need constructors because they are initialized using their own life-cycle methods, and static blocks just invite threading problems.

Follow best practices and limit data to variables declared within the method bodies.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Neeraj Vij
Ranch Hand

Joined: Nov 25, 2003
Posts: 315

Thanks Bear.

what will happen, if I the example given uses the constructor and static blocks?

please give some detailed examples or links for reference.

I can't google from my office

Thanks,
Neeraj.
Vijitha Kumara
Bartender

Joined: Mar 24, 2008
Posts: 3817

Neeraj Vij wrote:what will happen, if I the example given uses the constructor and static blocks?


Reason is when you have a static (class level) variable when multiple threads executed in a given servlet instance you will have all sorts of concurrency issues and that's why you should avoid that.
Neeraj Vij
Ranch Hand

Joined: Nov 25, 2003
Posts: 315
But in the example, I have used vector. Will it still have concurency issues ?

I just wrote a small servlet for constructors usage-

if we don't want to use a ServletConfig object, it is fine to use a public no-arg constructor. Constructor was inviked first and then the init() method.

I want to know the risks/disadvantage of using constructors in servlet. if any?

Thanks
Neeraj.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60794
    
  65

Inconsistency is not good. No experienced web developer worth their salt will use a servlet constructor because it's confusing and fragile. Just because you can get something to work, doesn't mean it's right. Following accepted practices and standards makes your code much more readable and understandable.
Neeraj Vij
Ranch Hand

Joined: Nov 25, 2003
Posts: 315
Thanks Bear.


I will try to conivince the developer to not use constructors.

Will vectors be safe in transactions, if used in static blocks ?

Thanks,
neeraj.
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9291
    
  17

Neeraj Vij wrote:
I can't google from my office


I've never seen this before. I wonder why would they do this . I hope this is not common in most offices...


SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60794
    
  65

It's a bit off topic, but you wouldn't believe some of the idiotic policies that big companies put in place.

My previous job was with a small software company that got bought by a BIG BANK. Some of the policies that got put into place were nothing short of ludicrous.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60794
    
  65

I've never used a read-write static block in the over ten years I've been writing servlets -- since their very inception.

Data that's to be shared across the application goes in the application context, per-user data in the session.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Constructor And Static block
 
Similar Threads
getting error when converting vector to string
How do I force class to be a static
about constructor
final variables
modifiers for constructors