On 4/24/05, Yan Hu [EMAIL PROTECTED] wrote:
Hi:
I came across a couple of articles about logout on the Web. They all do
something like
session.removeAttribute(user);
session.invalidate();
Can I just use session.invalidate()? Would user be destroyed automatically
when the session is
invalidated?
Yes, you are technically accurate -- the user attribute will get
thrown away, and (if the user attempts to continue and starts a new
session) he or she will appear to not be logged in because the new
session will not have such a user object.
That being said, I personally encourage developers to explicity delete
anything they have put into the session, as a specific case of a
general principle that many of us teach our kids: clean your bedroom
before you go play. :-). In this particular case, it is important
for developers to understand that registering things in session scope
has scalability and performance impacts -- and that, in nearly every
case, there should be a removeAttribute() statement that corresponds
to the setAttribute() statement that added it. Also, you should
strive to delete session scope objects as quickly as you no longer
need them.
Yes, the container will pick up your toys for you when the session
expires, but depending on this tempts you towards laziness (and, of
course, an exasperated parent :-).
Craig
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]