Если Tomcat упал, он должен иметь размер более 128 МБ или, возможно, удвоиться (что является минимальным объемом памяти по умолчанию для некоторых версий Tomcat). Я не думаю, что пользователи хотели бы посетить такую большую веб-страницу. Может показаться, что он быстро работает как сервер и клиент на локальном хосте, но будет работать в 100 раз медленнее, когда обслуживается через интернет.
Введение пейджинга / фильтрации. Запросите и покажите только 100 записей одновременно. Добавьте фильтр, который возвращает конкретные результаты, такие как журналы определенного временного диапазона или определенного пользователя и т. Д.
Google также не показывает все миллионы доступных результатов сразу на одной веб-странице, их серверы также наверняка "упадут":)
Обновление согласно комментарию: компонент помещен в область действия сеанса или так? Таким образом, он действительно скоро накопится в памяти. Потоковая передача возможна только в том случае, если у вас есть InputStream
на одной стороне и OutputStream
на другой стороне. Невозможно преобразовать String в поток таким образом, как ваша попытка приведения, чтобы он больше не сохранялся в памяти Java. Источник должен оставаться на другой стороне, и он должен быть извлечен побайтно по строке. Единственно возможный подход - использовать <iframe>
, чей src
указывает на некоторый HttpServlet
, который напрямую передает данные из источника в ответ.
Ваша лучшая ставка, скорее всего, состоит в том, чтобы хранить все это в базе данных или - если оно не содержит данных, специфичных для пользователя - в области приложения и делиться ими между всеми сеансами / запросами.