Это возможно. Просто создайте обрамление, например this example. В точку просто получите изображение как InputStream
из БД на ResultSet#getBinaryStream()
и напишите его на OutputStream
ответа, полученного по HttpServletResponse#getOutputStream()
, номер usual Java IO way. Не забудьте добавить заголовки содержимого HTTP и заголовки длины содержимого. Если вы опустите тип контента, браузер не знает, что делать с информацией. Если вы опустите длину содержимого, он будет отправлен с кодировкой с чередованием, что является менее эффективным.
Что касается ссылки на сервлет в файле CSS, просто укажите URL-адрес относительно в файл CSS. Таким образом, вам не нужно беспокоиться о контексте. Определение относительного URL-адреса не так сложно, оно работает так же, как и при доступе к локальным дисковым файловым путям в командной консоли. cd ../../foo/bar/file.ext
и так далее. Вы когда-нибудь узнали об этом в школах, да?
Хорошо, предположим, что imageservlet находится в http://example.com/context/image?id=x
и что файл CSS расположен на http://example.com/context/css/globalstyle.css
(таким образом, текущая папка css
), то вправо относительно URL в imageservlet внутри файла CSS будет:
background-image: url('../image?id=123');
../
The идет на шаг назад в структуре каталогов, так что вы идете из папки http://example.com/context/css
в http://example.com/context
. Если вам все еще сложно найти правильный относительный путь, то дайте нам знать абсолютный URL-адрес как сервлета, так и CSS-файла, затем мы выберем правильный относительный путь для вас.
привет .. Вот URL-адрес CSS и сервлета. HTTP: // локальный: 8080/ /myStyle.css HTTP: // локальный: 8080/ /servlet/com.abc.def.servlet.FileServlet?pictureType=common&pictureName=home.gif мая я знаю, как я могу получить путь. –
coder247
Он находится в одной родительской папке. Вы можете просто использовать 'background-image: url ('servlet')'. – BalusC
Спасибо .. сейчас остальная часть работы проста .. :) – coder247