There are 8 Listeners to remember. We know there are attributes in 4 scopes because we know how to Pick the Right Scope Automatically, but you can’t listen to Page attributes, it doesn’t make sense, so that leaves us with RSA; Request, Session and Application. These tally with the objects:
- ServletRequest
- HttpSession
- ServletContext
There is a Listener for each of these objects for lifecycle events, and for attribute events, so that gives us 6 of the Listener Interfaces:
- ServletRequest[Attribute]Listener
- HttpSession[Attribute]Listener
- ServletContext[Attribute]Listener
HttpSession gets the 2 extra interfaces:
- HttpSessionBindingListener – Attribute objects implement this if they themselves want to know whenthey are [un]bound
- HttpSessionActivationListener – Listen here to have a nose when the session is gallivanting around
Events
There are just 6 events, one for each lifecycle event:
- ServletRequestEvent
- HttpSessionEvent
- ServletContextEvent
and one for each attribute-related event:
- ServletRequestAttributeEvent
- HttpSessionBindingEvent – (It’s easy to remember this black sheep because its initials rhyme with the worlds local bank HSBE)
- ServletContextAttributeEvent