По идее коннекты к базе уже должны быть созданы заранее. Есть такая штука как Connection Pool - набор уже открытых коннектов. Когда сервлету понадобилось обратиться к базе - берется коннект из этого пула, и сервлет работает с ним, и как только сервлету уже не нужна база - он должен освободить коннект (вернуть в пул). Если запросов много, а коннектов уже не хватает, то сервлет приостанавливает работу до тех пор, пока не появится свободный коннект в пуле. Это в двух словах.
Можно прочесть небольшую статейку или поискать в нете.