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 }