2012-06-07 3 views
1

Вот сценарий, по которому моя форма отправляет данные сервлету, который в свою очередь вносит изменения в db и прикрепляет объект к атрибуту запроса и пересылает его на страницу JSP.Предотвращение множественных проводок с использованием REFRESH

Теперь проблема в том, что нажата кнопка обновления на JSP, процесс возвращается назад, и поскольку он был перенаправлен, сервлет снова вводит данные. Я мог бы решить эту проблему путем перенаправления вместо пересылки с сервлета на страницу jsp и прикрепления объекта как атрибута к сеансу вместо запроса.

Но я хотел знать, есть ли лучший способ сделать это?

Я не хочу хранить все, что я встречал в сеансе, и есть ли способ узнать, было ли это событие обновления?

ответ

0

Данные могут быть опубликованы с использованием GET or POST. Если обновлен метод GET, which is idempotent, browser automatically makes request to the server.

Но, если метод был POST, which is non-idempotent, the browser will raise a popup asking the user to really post the data and this may repeat the operation again.

Если вы используете GET, то я бы предложил изменить его на POST.

Но лучшим решением является POST + REDIRECT + GET.

Смежные вопросы