• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Application Scope or Static Methods

 
Abiodun Adisa
Ranch Hand
Posts: 495
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have to store a Java object into an application scope. I am to decide
between two possible implementations viz.:

1. use a class with some static properties and some static accessor methods
which can be accessed by any JSP/servlet thread. The shared (application )
object will be there in the static property and will be accessed by the
static methods.

2. use ServletContext's getAttribute() and setAttribute() methods.Store the values in Application Scope

Which is better
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64618
86
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Storing a value in application scope makes it truly global to that application and just that application. It avoids relying on classloader details.

I almost always store app-wide data in application scope.
 
Sunny Bhandari
Ranch Hand
Posts: 448
Eclipse IDE Firefox Browser Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
More info about the variable would have helped.

Anyways, I will not write a class with one static member. Do you have a class in mind for storing this value.

Both are not threadsafe.
 
Shashank Ag
Ranch Hand
Posts: 88
Java Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Well I faced similar issue and here's what I concluded:

1. This should be done only for readonly data. If values are modifiable the they should be read from persistent store always.
2. If you need to cache some data (say from xml files or database) and it is availble at application startup (which is most probable), use servlet context.
And to load the data only use context listener.
3. If data is not availble upon server startup then use static members.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic