Позвольте мне поделиться тем, что я делаю с файлами изображений и динамической генерацией HTML, и почему - я считаю, что это нестандартный подход, не стесняйтесь комментировать или использовать такую систему, если она работает для вас. :)
У меня есть несколько параметризованных html, таблиц стилей и файлов изображений, которые помещаются в html и сохраняются как файл [clientid] .jar на стороне сервера. Пользовательский интерфейс основан на апплетах. В неурочное время апплет запрашивает файл (и связанную логику) из сервлета после надлежащей аутентификации. Сервлет упаковывает весь JAR-файл в виде байтового массива, инкапсулирует его содержимое (из предопределенного каталога в Unix FS) и бизнес-логику (из базы данных) в объект FileXfer и отправляет его в ObjectOutputStream. Апплет извлекает байты и сохраняет файл jar как файл tmp в tmpdir с флагом deleteOnExit.
Во время выполнения, когда требуется отобразить html, апплет извлекает необходимые файлы из архива и сохраняет их в том же каталоге, фильтруя html в соответствии с требованиями бизнес-логики. Файлы изображений (jpeg, png и т. Д.) Не фильтруются. Все такие файлы - deleteOnExit, поэтому после выхода из приложения не остается места. Затем он открывает HTML с вкладкой браузера, и все, что мне нужно отобразить, там в правильном формате. Апплет имеет логику извлечения файлов - например, не извлекать «logo.png», если он был извлечен 15 секунд назад для отображения другого фрагмента HTML и т. Д.
Преимущества, которые я вижу:
Я получаю автоматическое сжатие байтов, которые мне нужно передать с сервера клиенту, ускоряя передачу примерно в 3 раза, (jar использует сжатие zip)
Клиент (апплет) берет на себя нагрузку фильтрации html, освобождая тем самым сервер от той же работы
Нет хранения больших двоичных файлов изображений на БД (где-то я читал, что сгустки не совсем эффективны для операций с БД)
HTML можно редактировать независимо, используя стандартные теги img, предполагая, что файл изображения находится в $ cwd
[clientid] .jar Содержимое файла не включено в jar, содержащий класс апплета, что позволяет апплету загружаться и запускаться быстрее.
TIA за ваши комментарии, - M.S.