File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Web Component Certification (SCWCD/OCPJWCD) and the fly likes The difference between HttpSessionAttributeListener and HttpSessionBindingListener Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Customer Requirements for Developers this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Web Component Certification (SCWCD/OCPJWCD)
Bookmark "The difference between HttpSessionAttributeListener and HttpSessionBindingListener" Watch "The difference between HttpSessionAttributeListener and HttpSessionBindingListener" New topic
Author

The difference between HttpSessionAttributeListener and HttpSessionBindingListener

Maria Tan
Greenhorn

Joined: Jun 24, 2002
Posts: 25
Hello:
I am confusing about these two listeners. I am just wondering if you may help me.
Thanks in advance
Maria
Kyle Tang
Ranch Hand

Joined: Aug 22, 2002
Posts: 78
HttpSessionBindingListener is implemented by session attributes.
HttpSessionAttributeListener instance is created by Web-Container, based on <listern> element in web.xml. For each <listern-class>, one listern instance is created.
Now you can see, if your session has 3 attributes, each of them implements HttpSessionBindingListener, you got 3 ***Binding listeners.
But if you only define one <listener-class> in web.xml, you only get one ***Attribute listener.

another important difference, HttpSessionAttributeListener monitors ALL Sessions in the web-app, whenver any session has an attribute added/removed/replace, the listener got notified.
HttpSessionBingListener only cares about itself. If itself is added into or removed from a session, it is notified.


Kyle Tang<br />SCJP 91<br />SCWCD 96<br />SCBCD 95
Maria Tan
Greenhorn

Joined: Jun 24, 2002
Posts: 25
Thanks a lot. It's clear.
Maria
Anthony Villanueva
Ranch Hand

Joined: Mar 22, 2002
Posts: 1055
Some examples
Thambi Rajah
Ranch Hand

Joined: Jul 19, 2002
Posts: 36
I have a question regarding HttpSessionBindingListener and HttpSessionAttributeListener.
Say the definition of classes MyBindingListener , TestServlet and snippet of web.xml are as follows:

where class MySessionAttributeListener implements HttpSessionAttributeListener interface.
My qustion is:
When we access the TestServlet from a browser, which listener classes will be notified by
session.setAttribute("countObject", countObject) statement?
(A) MySessionAttributeListener
(B) MyBindingListener
(C) Both listeners(MySessionAttributeListener and MyBindingListener)
Thanks in advance
Thambi
Kyle Tang
Ranch Hand

Joined: Aug 22, 2002
Posts: 78
both
Daniel Roach
Greenhorn

Joined: Mar 12, 2002
Posts: 10
Originally posted by Kyle Tang:
both


Kylie
why is it both and not just the class specified in web.xml?
cheers
Dan
Daniel Roach
Greenhorn

Joined: Mar 12, 2002
Posts: 10
oops kyle, sorry about misspelling your name
why is it both and not just the class specified in web.xml?
cheers
Kyle Tang
Ranch Hand

Joined: Aug 22, 2002
Posts: 78
that is by definition of these 2 listeners. there is no reason why only one of them get notified, and the other get blocked. your web-container will follow what the spec says. if the attribute that is added to a session implements HttpSessionBindingListener, it will get notified. In the mean time, if there is a HttpSessionAttributeListener defined in web.xml, that listener instance will also get notified.
please refer to my earlier reply to the original post.
 
Don't get me started about those stupid light bulbs.
 
subject: The difference between HttpSessionAttributeListener and HttpSessionBindingListener
 
It's not a secret anymore!