ResultSet никогда не должен находиться в пределах 100 ярдов от пользовательского интерфейса.
Вот как должно выглядеть ваше многоуровневое приложение:
HTML-страница в браузере ----> сервлет прослушивает HTTP-запросы ----> интерфейс к базе данных
«интерфейс» в данном случае следует понимать буквально: это интерфейс POJO для операций CRUD. Не возвращайте ResultSet; отобразите результаты запроса в структуру данных или объект и закройте ResultSet в области действия метода. Это дефицитный ресурс; вы не должны пропускать это из слоя постоянства.
Как только сервлет получает объект или коллекцию обратно из базы данных, он может добавить его к ответу, чтобы пользовательский интерфейс мог получить его.
Я предполагаю, что ваша HTML-страница генерируется динамически с использованием таких шаблонных технологий, как JSP или Velocity. Они позволят легко добавить объект или коллекцию из базы данных на страницу.
Это не "просто", но я думаю, что это правильный способ сделать это без суеты.