Я хотел бы преобразовать BufferedImage
к изображению, которое отобразится на странице JSP. Как я могу достигнуть этого?
Во-первых, 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());