True not too many people would make a DB connection in a listener.
It would make sense, however to initialize a connection pool from a listener. You may also have initialization data that is stored in a database that you want to retrieve and cache when the context initializes.
I have a webservice app that communicates with a non-browser application. In it there is a login handshake that gives the client an ID string (similar to a JSPSessionID). I have an in-memory object that keeps track of who's logged in and when their session expires. So that I can restart the application without throwing all of these clients out, I serialize that object to disk when the context is destroyed and de-serialize it when the context starts back up.