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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> servlet и обновление страницы, отменить повторный запуск 
V
    Опции темы
sith
Дата 10.7.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



... появилась такая проблема...

... есть страница с формой... пользователь вводит данные нажимает отправить и подчиненный сервлет записывает эти данные в файл...  и возвращает страницу со всем данными которые в файле были записанны...

... в процессе отладки обнаружилось очень неприятное дело... при нажатии кнопки обновить страницу сервлет опять запускаеться и дописывает повторные данные.... и так может быть до безконечности... 

... вопрос... как избежать этот баг... 


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
ecologist
Дата 10.7.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 5
Всего: 9



Так разве при "настоящей" отправке не нажимается какая-то кнопка ? На этот атрибут и ловить - если установлен параметр (для кнопки) - значит это пользователь нажал. Иначе - не нажал а просот обновил.
PM MAIL   Вверх
batigoal
Дата 10.7.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Приведи код своей формы. Я полагаю, ты не используешь атрибут action у формы, а оставляешь его дефолтовым (текущая страница). Это так?

Это сообщение отредактировал(а) batigoal - 10.7.2007, 12:18


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


...и это пройдет...
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 6.5.2007
Где: Moscow, RU

Репутация: 12
Всего: 19



Используй шаблон проектирования Маркер Синхронизации.
К слову, в struts это называется transaction token, если struts используешь.


--------------------
и это пройдет....

http://ekrs.blogspot.com
PM WWW   Вверх
sith
Дата 10.7.2007, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



... не работает...
... при обновлении страницы имя параметра и само значение его устанавливаемое в кнопке не пропадает...


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
sith
Дата 10.7.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



... привожу код своей формы


Код

    <form action="/BobsBandProj/guest">
          <center>
<PRE>   Имя           <input type="text" name="name" size="30">
    E-mail             <input type="text" name="e-mail" size="30">
    Город              <input type="text" name="city" size="30">
    ДОмашняя страница  <input type="text" name="home" value="http:\\" size="30">
    
Текст
               <textarea cols="25" rows="10" name="text"></textarea>
    <input type="hidden" name="type" value="write">
    </PRE>
              
              
              
              <br><hr width="500" size="3"style="color=#E9B10A"></center>
             <center>  <input type="submit" name="act" value="ОТправить"><input type="reset" value="Очистить">
              
          </form>


... кстате еще один такой ньюанс... если я ввожу данные в форму русскими буквами... то в своем сервлете получаю вопросики... как это исправить...


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Maksym
Дата 10.7.2007, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Цитата(sith @  10.7.2007,  13:58 Найти цитируемый пост)
.. кстате еще один такой ньюанс... если я ввожу данные в форму русскими буквами... то в своем сервлете получаю вопросики... как это исправить...

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


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


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

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



А траница у тебя доступна по УРЛу /BobsBandProj/guest или какому-то другому?


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


Опытный
**


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

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



... с кодировкой я разобрался...

... а как избавиться от проблемы с обновлением страницы...


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
fixxer
Дата 10.7.2007, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 4
Всего: 27



Попробуйте использовать метод POST

Или разделите отображение формы и ее обработку, например тут

Это сообщение отредактировал(а) fixxer - 10.7.2007, 17:14


--------------------
user posted image
PM MAIL ICQ   Вверх
check
Дата 10.7.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 23



Надо всего лишь сделать в сервлете редирект на страницу с формой после записи в файл
Код

response.sendRedirect("form.html");

В этом случае значения полей обнулятся.
PM MAIL   Вверх
sith
Дата 10.7.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



batigoal ... именно так...


fixxer я не все понял в этой статье а особенно куда всунуть этот 

response.sendRedirect(response.encodeRedirectURL(URL))

и что поставить вместо URL


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
check
Дата 10.7.2007, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 23



А, ну по ссылке, которую дал  fixxer как раз этот способ описан.
PM MAIL   Вверх
sith
Дата 10.7.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
check
Дата 10.7.2007, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 23



response.sendRedirect нужно вставить после выполнения записи в файл, т.е. сервлет,
сделав сделав свое дело должен перенаправить браузер на исходную страницу(или на какую-то другую страницу, какую ты посчитаешь нужным). Методу sendRedirect нужно передать УРЛ этой страницы.

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

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

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


 




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


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

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