Выдача картинок сервлетом из базы
Не знаю как работают Ваши сервлеты, но вообще ест два способа показыват изображения из базы, простой но с нагрузкой и сложный но с уменьшенными рессурсами:
1. отдаем изображение через сервер, по отдельному урлу, который генерит заголовок изображения и выплевывает данные в бинарном виде, браузер сам все сделает, адрес будет вида: mysite.com/get/image/1234/
2. Перед выводом сохраняем изображение в отдельную папочку, и прописываем путь к ней на странице, получится нормальный адрес: mysite.com/images/1234.jpeg
Естественно при втором подходе нужно учитывать что изображения может не быть, и при 404 делать редирект на адрес который создаст изображение на диске.
Делаете отдельный сервлет, который на doGet (или как там метод называется на обработку request'а клиента) читает из URL название/id изображения. Дальше он смотрит (в Map, например) есть уже сохраненное на диск изображение. Если есть, то открывает это файл на чтение. Если нет, то открывает базу на чтение бинарных данных и копируем их на диск. Затем тоже открывает файл на диске на чтение.

Ну а дальше, на response устанавливаем нужные header (image/jpeg, png и т.д.), смотрите подробности в mime. И читаем данные с диска и пишем в response.

Примерно так :) А еще лучше, разработать более сложную систему кеширования и в  добавлять конкретное название файла на диске. А дальше, nginx'ом можно отдавать эту статику.

location ~ ^/(img)/ {
 root /usr/share/tomcat5.5/webapps/myproject/ROOT;
 }

Где в ROOT есть каталог img и соотвественно при запросах /img/some.jpg nginx будет искать в папке ROOT/img файл some.jpg и отдавать его.