почему веб-сервер отображает изображения corrupterd?

#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() для записи двоичных данных. Вы можете найти простой и правильный пример сервлета изображений в этой статье.