powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как вывести из сервлета 2 картинки на страницу?
7 сообщений из 7, страница 1 из 1
Как вывести из сервлета 2 картинки на страницу?
    #32709393
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 2 массива байтов, в куда помещены PNG. Если из сервлета я говорю примерно следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
byte[] image1, image2;
...
response.setContentType("image/png");
response.setContentLength(image1.length + image1.length);
ServletOutputStream out = response.getOutputStream();
out.write(image1);
out.write(image2);

то в результате на странице видна только первая картинка. Как бы показать вторую?
...
Рейтинг: 0 / 0
Как вывести из сервлета 2 картинки на страницу?
    #32709429
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проявить фантазию.

html это что такое?
Это страничка на которой есть ссылки, в том числе и на картинки.

Как получить в html страничку две картинки?
Вставить две ссылки.

Как сгенерить код html странички?
Написать сервлет, который будет возвращать клиенту страничку с двумя ссылками.

Как по ссылкам получить картинки?
На писать сервлет, который по запросу возвращает требуемую картинку.

Круто? :)
...
Рейтинг: 0 / 0
Как вывести из сервлета 2 картинки на страницу?
    #32709482
SOMNAMBULA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут ещё подводные камни есть...
Коротче, давным-давно, делал такое же. Т.е. сервлет из базы данных вставляет картинку в ServletOutputStream. Однако была следующая трабла - если на страничке вставляется несколько картинок, это делалось типа такого:

Код: plaintext
<img src="getimageservlet?imageId=xx"...>

то они отображаются на страничке с переменным успехом. Либо только первая, либо через одну и, коротче, совсем бессистемно... Да и ещё периодически SQLException вылетал (щас уже и не помню, какой именно). Парил НУ ОЧЕНЬ ДОЛГО, ну причём думал тут SQLException???, потом плюнул и бросил это дело...
Как-то потом меня посещала мысль о том, что надо часть кода, которая картинку в выходной поток сервлета пишет, делать synchronized . Типа то, что если со странички множество ссылок на один сервлет закачивающий картинки, то для обработки этих запроса на получение картинки создавался отдельный поток (на сервере), а сервлет, вроде бы, если он не SingleThreadModel , будет один эти запросы обрабатывать. Таким образом, несколько конкурирующих потоков претендуют на один ресурс (у меня из базы картинки прямо в сервлете была закачка сделана) - соединение с базой данных, вот от куда и SQLException было (???).

В общем, мысли в слух... Мысль я эту не проверял, поэтому могу ошибаться.

Может у кого желание есть прокомментировать?
...
Рейтинг: 0 / 0
Как вывести из сервлета 2 картинки на страницу?
    #32709491
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При выводе нескольких изображений надо делать alive connection.
...
Рейтинг: 0 / 0
Как вывести из сервлета 2 картинки на страницу?
    #32709534
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу. Про потоки это правильно замечено.
Нужно аккуратно работать с shared resources вроде файлов, коннекшенсами к базе, ссылками на классы etc.
Другой вариант возложить всю ответственность на контейнер (имплементировать SingleThreadModel).
Однако в этом случае могут быть проблемы при переносе приложения в другой контейнер (скорее с его настройкой).
В спецификации не указано каким именно образом будет достигаться SingleThread поведение: будет создан новый инстанс сервлета для выполнения паралельного запроса или контейнер подождёт, когда сервлет закончит текущую работу.
Тоже надо иметь ввиду :)
...
Рейтинг: 0 / 0
Как вывести из сервлета 2 картинки на страницу?
    #32709941
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более подробно задача состоит в следующем: есть многостраничный TIFF, через JAI он преобразовывается в набор PNG, которые и надо вывести друг за другом. Вызывать каждый раз сервлет для вытаскивания определенной страницы из TIFF'а как-то накладно. Поэтому хотелось бы поочередно "выплюнуть" все страницы сразу после преобразования. Осталось придумать алгоритм, как это осуществить.

Второй вариант: можно ли через тот же JAI соединить несколько картинок, поставив каждую "снизу" предыдущей?
...
Рейтинг: 0 / 0
Как вывести из сервлета 2 картинки на страницу?
    #32710800
SOMNAMBULA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы так остановился на поочерёдной закачке, не так уж и накладно, особенно для локальной сети. Да и для удалённых соединений накладность, на мой взгляд, тоже вопрос спортный...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как вывести из сервлета 2 картинки на страницу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]