This week's giveaway is in the EJB and other Java EE Technologies forum.
We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line!
See this thread for details.
The moose likes Web Component Certification (SCWCD/OCPJWCD) and the fly likes attributeReplaced() of HttpSessionAttributeListener ? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Certification » Web Component Certification (SCWCD/OCPJWCD)
Bookmark "attributeReplaced() of HttpSessionAttributeListener ?" Watch "attributeReplaced() of HttpSessionAttributeListener ?" New topic

attributeReplaced() of HttpSessionAttributeListener ?

hasan khan
Ranch Hand

Joined: Aug 04, 2003
Posts: 222

i am using Person class as a attribute class for the sessions
i am adding this as
session.setAttribute("person", objPerson1);

i am replacing this attribute with another instance of Person like this
session.setAttribute("person", objPerson2);

so in this case
attributeReplaced() is called
on calling getValue() of HttpSessionBindingEvent class i am getting old value.

but when Person class implements HttpSessionBindingListner, getValue() inside
attributeReplaced() is returing new value.

this is really confusing for me, as this is no where stated in the documentation

Patrick Williams
Ranch Hand

Joined: Apr 03, 2005
Posts: 213
From Mikalai Zaikin's study guide (and I think that he gets it from the spec).

Events of the following type are either sent to an object that implements HttpSessionBindingListener when it is bound or unbound from a session, or to a HttpSessionAttributeListener that has been configured in the deployment descriptor when any attribute is bound, unbound or replaced in a session. The session binds the object by a call to HttpSession.setAttribute and unbinds the object by a call to HttpSession.removeAttribute. The getValue function returns the value of the attribute that has been added, removed or replaced. If the attribute was added (or bound), this is the value of the attribute. If the attribute was removed (or unbound), this is the value of the removed attribute. If the attribute was replaced, this is the OLD value of the attribute.

Patrick<br /> <br />SCJP/SCWCD/SCBCD/SCDJWS/SCEA<br /> <br />Currently working on:<br />SCJP 6
Consider Paul's rocket mass heater.
subject: attributeReplaced() of HttpSessionAttributeListener ?
Similar Threads
Doubt about attribute listeners
Q6 from chap 5 of HSFJ
HttpSessionBindingListener & HttpSessionAttributeListener
page 218 Head First Servlets and JSP
attributeReplaced method of HttpSessionAttributeListener