#image #jsp #tomcat
#изображение #jsp #tomcat
Вопрос:
У меня есть страница в JSP, у которой есть тег типа: <img src="images/1.bmp"></img>
1.bmp похож:
Но изображение, которое отображается на моей странице, посещаемой firefox, выглядит следующим образом:
что я должен сделать, чтобы исправить эту проблему?
Комментарии:
1. Ugg, используя bmp-файлы на веб-странице? Подумайте о том, чтобы преобразовать их во что-нибудь другое (jpeg, png). Что Firebug отображает в качестве ‘content-type’ для этого изображения при его обслуживании?
2. Я должен использовать файлы bmp, из-за функциональности моего веб-сайта. Как я могу увидеть ‘content-type’ с помощью Firebug?
3. В firebug перейдите на вкладку «Сеть», затем перезагрузите страницу. вы должны увидеть ‘Get imagename.bmp’, щелкните знак и увидите ‘Headers’.
4. заголовок ответа выглядит следующим образом: HTTP / 1.1 304 Не измененная передача-Кодировка: фрагментированный сервер: Jetty (6.1.3)
5. Ничего из этого не отображается там, где я просил вас посмотреть.
Ответ №1:
Я преобразовал изображения, которые вы загрузили в свой вопрос, обратно в BMP и исследовал их источник. Везде, где в исходном источнике появляется символ, отличный от ISO-8859-1, в искаженном источнике появляется ?
.
Это означает, что у вас есть сервлет, /images/*
который использует response.getWriter()
для записи изображения кодировку платформы по умолчанию. Вы не должны этого делать. BMP-файлы не являются текстовыми файлами. BMP-файлы являются двоичными файлами. Вы должны использовать response.getOutputStream()
для записи двоичных данных. Вы можете найти простой и правильный пример сервлета изображений в этой статье.