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 006package fc.web.servlet; 007 008import javax.servlet.*; 009import javax.servlet.http.*; 010import java.io.*; 011import java.util.*; 012 013import fc.io.*; 014 015/** 016For debugging session attribute set/get events. Enable this listener in the 017server configuration file to ease <i>development time</i> debugging. 018 019@author hursh jain 020**/ 021public class DebugSessionListener implements 022 HttpSessionListener, HttpSessionAttributeListener 023{ 024Log log; 025 026void initLog(HttpSession session) 027 { 028 if (log == null) { 029 log = Log.getDefault(); 030 } 031 } 032 033//Session Listener 034public 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 043public 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 053public 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 064public 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 075public 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}