001 // Copyright (c) 2001 Hursh Jain (http://www.mollypages.org)
002 // The Molly framework is freely distributable under the terms of an
003 // MIT-style license. For details, see the molly pages web site at:
004 // http://www.mollypages.org/. Use, modify, have fun !
005
006 package fc.web.servlet;
007
008 import javax.servlet.*;
009 import javax.servlet.http.*;
010 import java.io.*;
011 import java.util.*;
012
013 import fc.io.*;
014
015 /**
016 For debugging session attribute set/get events. Enable this listener in the
017 server configuration file to ease <i>development time</i> debugging.
018
019 @author hursh jain
020 **/
021 public class DebugSessionListener implements
022 HttpSessionListener, HttpSessionAttributeListener
023 {
024 Log log;
025
026 void initLog(HttpSession session)
027 {
028 if (log == null) {
029 log = Log.getDefault();
030 }
031 }
032
033 //Session Listener
034 public void sessionCreated(HttpSessionEvent event)
035 {
036 synchronized (this) {
037 HttpSession session = event.getSession();
038 initLog(session);
039 log.bug("session CREATED=", session);
040 }
041 }
042
043 public void sessionDestroyed(HttpSessionEvent event)
044 {
045 synchronized (this) {
046 HttpSession session = event.getSession();
047 initLog(session);
048 log.bug("session DESTROYED=", session);
049 }
050 }
051
052 //AttributeListener
053 public void attributeAdded(HttpSessionBindingEvent event)
054 {
055 synchronized (this) {
056 HttpSession session = event.getSession();
057 initLog(session);
058 log.bug("attribute ADDED to session=", session,
059 "name=", event.getName(),
060 "value=", event.getValue());
061 }
062 }
063
064 public void attributeRemoved(HttpSessionBindingEvent event)
065 {
066 synchronized (this) {
067 HttpSession session = event.getSession();
068 initLog(session);
069 log.bug("attribute REMOVED to session=", session,
070 "name=", event.getName(),
071 "value=", event.getValue());
072 }
073 }
074
075 public void attributeReplaced(HttpSessionBindingEvent event) {
076 synchronized (this) {
077 HttpSession session = event.getSession();
078 initLog(session);
079 log.bug("attribute REPLACED to session=", session,
080 "name=", event.getName(),
081 "value=", event.getValue());
082 }
083 }
084 }