Если вы работаете с Java на стороне сервера сценариев, а также с помощью распорок 2, то вы смотрите эту ссылку, которая о переговорах об использовании маркера.
http://www.xinotes.org/notes/note/369/
Маркер должен быть сформирован и хранится в сессии для начальной страницы визуализации, когда запрос представляются вместе с маркером в первый раз, в распорках действия запустить поток с именем потока, что и token id и запустить логику, за которую запросил клиент, когда клиент снова отправляет один и тот же запрос, проверьте, продолжает ли поток (thread.getcurrentthread() прерывается), если он все еще запущен, а затем отправляет перенаправление клиента 503.
И Если вы не используете какие-либо рамки и ищете простоту тренировки. Вы можете воспользоваться помощью
java.util.UUID.randomUUID();
Просто поместите случайный UUID в сессии, а также в скрытом поле формы и на другой стороне (СПЯ страницы, где вы обработка других работ, как хранение данных в базе данных и т.д.) принимает вне поля uuid из сеанса и скрытой формы. Если поле формы совпадает с продолжением, удалите uuid из сеанса, и если это возможно, возможно, что форма была повторно отправлена.
Для вашей помощи я пишу фрагмент кода, чтобы дать представление о том, как достичь цели.
<%
String formId=(java.util.UUID.randomUUID()).toString();
session.setAttribute(formId,formId);
%>
<input type='hidden' id='formId' name='formId' value='<%=formId%>'>
Не будет ли это отправляться, если пользователь нажимает кнопку ввода в поле? –
@Ziyan, используя сделал бы трюк с ответом Vijay :) –
Также пользователь может снова включить кнопку, отредактировав код через браузер (Inspect Element) – foxt7ot