Во-первых, JSP - это технология представления, предоставляющая шаблон для записи HTML / CSS / JS и возможность взаимодействия с внутренним Java-кодом для управления потоком страниц и доступа к данным бэкэнда. Ваша проблема больше в HTML.
Теперь, чтобы отобразить изображение на странице HTML, вам нужен элемент HTML <img>
. Чтобы определить / выделить изображение, вы просто должны позволить атрибуту src
указать URL-адрес. Э.Г.
<img src="url/to/image.jpg">
(это может быть либо относительно текущего контекста, либо абсолютный URL, например, начиная с http://
)
Если изображение динамическое, как в вашем случае, вам нужно иметь Servlet
, который прослушивает url-pattern
, соответствующий URL-адресу изображения. Э.Г.
<img src="imageservlet/image.jpg">
(здесь сервлет, очевидно, должен отображаться на /imageservlet/*
, а идентификатор изображения, здесь имя файла, здесь доступен для request.getPathInfo()
)
<img src>
сгенерирует запрос 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());
Смотри также: