Как преобразовать BufferedImage для обработки изображений для отображения на JSP

Я хотел бы преобразовать BufferedImage к изображению, которое отобразится на странице JSP. Как я могу достигнуть этого?

5
задан BalusC 6 August 2016 в 10:55
поделиться

1 ответ

Во-первых, JSP - это технология просмотра, предоставляющая шаблон для записи HTML / CSS / JS и возможность взаимодействия с внутренним кодом Java для управления потоком страниц и доступа к внутренним данным. Ваша проблема больше в HTML.

Теперь для отображения изображения на странице HTML вам понадобится элемент HTML . Чтобы определить / выделить изображение, вам просто нужно, чтобы атрибут src указывал на URL-адрес. Например.

<img src="url/to/image.jpg">

(это может быть либо относительно текущего контекста, либо абсолютный URL, например, начиная с http: // )

Если изображение динамическое, как в вашем случае, вам необходимо иметь сервлет , который прослушивает шаблон URL , соответствующий URL-адресу изображения. Например.

<img src="imageservlet/image.jpg">

(здесь сервлет, очевидно, должен отображаться на / imageservlet / * , а идентификатор изображения, здесь имя файла, здесь доступен через request.getPathInfo () )

запускает запрос GET, поэтому вам просто нужно реализовать метод doGet () сервлета. Чтобы отправить ответ HTTP, все, что вам нужно сделать, это записать некоторый контент в OutputStream ответа вместе с набором заголовков ответа, представляющих контент ( Content-Type , Content-Length и / или Content-disposition ). Вы можете использовать ImageIO # write () для записи BufferedImage в OutputStream .

Вы можете найти базовый пример такого сервлета изображений здесь . Вам просто нужно заменить Files # copy () на ImageIO # write () .

response.setContentType("image/png");
ImageIO.write(bufferedImage, "png", response.getOutputStream());

См. Также:

11
ответ дан 18 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: