El concepto de "Connection Pooling", se refiere al hecho de tener disponibles una serie de objetos "Connection" disponibles, para realizar las conexiones con la base de datos, para su posterior reutilización. Abrir una conexión con la base de datos es un proceso que consume tiempo. Para consultas sencillas, se puede tardar más tiempo en abrir la conexión con la base de datos que ejecutar la susodicha consulta. Parece tener sentido, reutilizar los objetos conexión, en aplicaciones que se conectan repetidamente sobre la misma base de datos. Es decir, inicialmente tienes una serie de objetos "Connection" disponibles, cuando desde una JSP o un Servlet necesitas realizar una conexión con la base de datos, pides una conexión al "Pool de Conexiones", la inicializas, realizas tú consulta y cuando hayas acabado la cierras, dejándola libre para que posteriormente pueda ser reutilizada por otra JSP o Servlet. Además todo servidor de base de datos tiene un número máximo de conexiones que puede tener abiertas o establecidas, con el Pool de Conexiones, evitamos que nuestro servidor de base de datos se colapse.