Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

scope: session vs application

 
Renata fonseca
Ranch Hand
Posts: 48
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi
I can't figure out the real difference of session scope and application scope...
When I should use the two scopes? Could someone give me an example of an application that I'd have to use both two scope?
 
Graeme Brown
Ranch Hand
Posts: 193
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Session scope is for data related to a particular client session, for example a Shopping Basket.
Application scope is for data that can be shared between clients.
 
Peter den Haan
author
Ranch Hand
Posts: 3252
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Practical things that I've been using application scope for include:
  • Configuration information such as the URL for resources living on a different server, so that a JSP can easily access this information. For example, this statistics server maintains a reference to the parent site in this way.
  • Shared objects such as caches. If you need some sort of Singleton in a web application, you could well be better off using the application context rather than a static variable for the purpose. When a class is reloaded, and you're using a static variable, you suddenly have two instances of your Singleton. This usually happens during development, but can also bite you when hot-patching production systems. Beware of ClassCastExceptions after a class has been reloaded!
  • If you have a dynamic, pluggable application, the application context is a good place to stuff factory objects.
  • Note -- while thread safety is important for session-scoped objects, it is doubly so for application-scoped objects.
    - Peter
    [ November 13, 2002: Message edited by: Peter den Haan ]
     
    Don't get me started about those stupid light bulbs.
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic