2012-02-24 4 views
0

Я создаю веб-приложение с помощью Servlet 2.5, и я столкнулся с необходимостью сделать это так, чтобы пользователь не мог нажать кнопку и выполнить действие, а затем нажать F5/Refresh и снова выполнить действие.Как остановить F5 от загрузки нескольких файлов?

Два способа, которые я размышлял о том, чтобы бороться с этим (но не очень много думал еще, думая, что это лучше спросить здесь первый):

  • Когда действие было сделано, я вызываю на редирект , эффективно очищая любые параметры запроса
  • Когда действие было выполнено, я добавляю рандомизированный хеш и проверяю следующую запись, если он изменился или нет? (не знаю, как узнать, является ли следующее действие обновлением или настоящим новым запросом здесь)

Или существует более простой/стандартизованный способ сделать это либо с помощью Tomcat/etc или некоторой библиотеки commons?

ответ

3

Ваша первая мысль верна. Образец называется redirect after post. Если вы используете какую-либо передовую платформу для веб-разработки, она должна поддерживать это из коробки.

Правильно использовать HTTP-глаголы. Если это HTTP GET, это не должно быть проблемой вызвать его более одного раза.

1

Другой метод, который я вижу, - это асинхронная загрузка с использованием ajax. Кнопка F5/refresh будет бесполезной, поскольку она больше не будет вызывать событие загрузки.

Для выполнения нескольких щелчков по кнопке (например, нажатие кнопки или ее отключение) потребуется дополнительная работа JavaScript.

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