Поделиться загруженным файлом между сервлетами в сеансе - PullRequest
0 голосов
/ 13 сентября 2011

Могу ли я сохранить загруженный файл в качестве переменной сеанса и делиться между различными JSP / сервлетами? (т.е. файл должен быть доступен на страницах, отличных от загружаемой.) Или нужно сохранить файл на сервере? Или есть другой способ?

1 Ответ

3 голосов
/ 13 сентября 2011

Да, это возможно.Просто сохраните его в byte[] и сохраните как атрибут сеанса.

byte[] fileContent = getItSomehow();
session.setAttribute("fileContent", fileContent);
// ...

Однако вы должны понимать, что каждый byte из byte[] эффективно съедает один байт памяти сервера.Таким образом, если у вас есть 100 одновременных пользовательских сессий с каждым только одним большим файлом размером 10 МБ, то уже 1 ГБ памяти сервера израсходовано.Вы рискуете OutOfMemoryError с, когда на вашем сервере недостаточно памяти и у вас много посетителей.Подумайте дважды, прежде чем идти в этом направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...