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 Spring in Action this week in the Spring 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.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: The difference between HttpSessionAttributeListener and HttpSessionBindingListener