Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отображение картинок в апплете вытащенных из базы 
V
    Опции темы
Vofka
Дата 21.6.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 21.6.2006

Репутация: нет
Всего: 1



Есть связка апплет+сервлет+база Oracle. В базе в BLOB хранятся различные файлы с различными расширениями.сервлет по запросу открывает blob и сохраняет файл на сервере с именем temp.расширение.В апплете идет непосредственное отображение записей таблицы с блобами,и передача информации к сервлету для открытия конкретного блоба.Также в апплете осуществляется просмотр открытого блоба.При просмотре картинки все время отображается одна и таже картинка.которая была открыта впервый раз.То есть как будто браузер запомнил эту картинку и отображает из куки.Вопрос сохраняет ли браузер в куки информацию отображаемую в апплете?и как сделать чтоб апплет выводил новую картинку , а не старую. 

Код

public void picture_v(){
    Image image=null;
    String pp= "temp.pict";
    image = getImage(getDocumentBase(),  pp);
    ImageIcon im=new ImageIcon(image);
    picture = new ScrollablePicture( im,1);
    jScrollPane2 = new JScrollPane(picture);
    jScrollPane2.setBounds(new Rectangle(10, 355, 940, 370));
    this.add(jScrollPane2, null);
   jScrollPane2.revalidate();
}
 
PM MAIL   Вверх
batigoal
Дата 21.6.2006, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



1. Не в куках, а в кэше. Хотя, в твоем варианте, кэш, по идее, не должен быть задействован.
2. Можно пойти немного другим путем - открывать картинку через сервлет непосредственно из базы, минуя  сохранение на диск. Тогда можно будет выставить HTTP-заголовки, указывающие на необходимость обновления файла.
3. Возможно, этим можно рулить с помощью настроек веб сервера (т.е. прописать, что файлы в определенном каталоге не должны кешироваться), не знаю. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Vofka
Дата 21.6.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 21.6.2006

Репутация: нет
Всего: 1



Цитата

Можно пойти немного другим путем - открывать картинку через сервлет непосредственно из базы, минуя  сохранение на диск. Тогда можно будет выставить HTTP-заголовки, указывающие на необходимость обновления файла.


это как? 
PM MAIL   Вверх
batigoal
Дата 21.6.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Цитата(Vofka @  21.6.2006,  13:34 Найти цитируемый пост)
это как?

Вот так: http://forum.vingrad.ru/index.php?showtopi...mp;#entry431362 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Vofka
Дата 21.6.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 21.6.2006

Репутация: нет
Всего: 1



Спасиб.ща попробую. 
PM MAIL   Вверх
Vofka
Дата 23.6.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 21.6.2006

Репутация: нет
Всего: 1



Вообщем спасибо за совет.так как вы посоветовали я не понял но проблему все равно победил.просто сделал чтоб из аплетта вызывалась не сама картинка а шел запрос к методу сервлета в котором был просто написан тег   <img src=> на картинку.Вот:апплет:
Код

    try
        {
           URL url = new URL(Servleturl+ "?list=pict" + "&" + rnd.nextInt());
            jEditorPane1.setPage(url);
            jEditorPane1.revalidate();    
        }
        catch (IOException e)
        {
            
        }

а в сервлете просто
Код

void pict(HttpServletRequest request, 
                     HttpServletResponse response) throws ServletException, 
                                                          IOException {
          response.setContentType(CONTENT_TYPE);
        request.setCharacterEncoding("Cp1251");
        PrintWriter out = response.getWriter();
                out.println("<html><body><img src='../temp.pict'></body></html>");
                
}


 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.