Когда я нажимаю ссылку, вызывающую сервлет. Когда я нажимаю эту ссылку несколько раз, когда сервлет выдает ошибку (сведения об ошибке не важны) Хотя для этого исправления существует другая работа (например, отключить ссылку после щелчка и т. Д.) Мне любопытно, есть ли способ контролировать это через объект запроса/ответа.Управление сервлетами с несколькими запросами
ответ
ошибка актуальна, имея несколько вызовов сервлета действуют разные, то один означает, что вы имеете проблемы безопасности нити, вероятно, из-за того, как вы реализованным сервлет
Ошибка заключается в создании некоторого большого объекта с некоторой логикой. Это не проблема в многопользовательской среде. Но это вызывает эту проблему при параллельном запросе для одного и того же пользователя. – Madhu
Деталь ошибки сервлета является потенциально интересной. API-интерфейсы сервлетов вообще не должны бросать ошибки, я предполагаю, что это некоторая прикладная ошибка.
Общий принцип, который я пытаюсь применить это:
1). Мы строим пользовательский интерфейс, чтобы сделать его затруднительным для того, чтобы пользователь непреднамеренно дважды отправлял один и тот же запрос (например, дебетовать мою учетную запись на сумму 100 фунтов стерлингов, действительно не хочу отправлять два таких запроса. Это может помочь какой-то javascript nift.
2). Мы создаем приложение для защиты от непреднамеренных двойных запросов, например, путем включения какого-либо идентификатора в запросы, которые позволяют указывать дубликаты.
Мы делаем не Предположим, что пользовательский интерфейс является идеальным, наш уровень бизнес-приложений несет окончательную ответственность за предотвращение двойных действий.
Нет ли встроенного метода, который уже доступен при обновлении HttpResponseObject, эта проблема будет решена. – Madhu
Когда пользователь нажимает на отправку, браузер отправляет объект запроса, сервлет переносит объект ответа. Браузер «знает», что второй клик имеет какое-либо отношение к первому, поэтому два запроса не имеют отношения - если вы не код что-то в Java Script. Сервлет, получающий запрос (который может даже работать на другом члене кластера), не может ничего о предыдущем reuqest (HTTP без гражданства), если вы что-то не кодируете. У таких структур, как Strust, есть функции для решения проблемы. – djna
Имеют смысл. Но все-таки им googleing найти решение для этой проблемы – Madhu
Установите флаг в области сеанса сервлетов при входе в сервлет и сбросьте его при выходе. Если флаг установлен во время ввода, затем молча игнорируйте.
Вам понадобится обработка ошибок в вашем сервлете, чтобы исключение ServletException не оставило установленный флаг.
Концептуально, да, но может быть сложным при работе с кластерными экземплярами. Может быть проще использовать db для отслеживания недавних запросов, т.е. полиция дублирует запросы в бизнес-логике, а не на уровне сервлета. – djna
Ошибка действительно, действительно актуальна.
У вас могут возникнуть проблемы с безопасностью резьбы, но вы также можете иметь «условие гонки», то есть результат процесса зависит от порядка выполнения, один из которых может дать вам ошибку.
(состояние гонки: http://en.wikipedia.org/wiki/Race_condition)
- 1. Управление запросами между .jsps и сервлетами
- 2. Управление несколькими запросами на выталкивание одновременно
- 3. Управление несколькими HTTP-запросами в Android
- 4. перенаправление с несколькими запросами
- 5. XMLHttpRequest с несколькими запросами
- 6. сервлеты с несколькими запросами
- 7. Управление AFNetworking несколькими запросами с помощью AFHTTPClient enqueueBatchOfHTTPRequestOperationsWithRequests метод
- 8. Spring Multiple HttpSecurity с несколькими сервлетами диспетчера
- 9. Одно базовое приложение с несколькими сервлетами
- 10. Управление запросами с помощью URI.js
- 11. Управление медиа-запросами
- 12. Проблемы с несколькими запросами mysql
- 13. Работа с несколькими асинхронными запросами
- 14. Birt Engine с несколькими запросами
- 15. Страница проекции с несколькими запросами
- 16. php/mysql с несколькими запросами
- 17. Запрос Mysql с несколькими запросами
- 18. Mithril.js с несколькими запросами GET
- 19. htaccess переписать с несколькими запросами?
- 20. Имея заказ с несколькими запросами
- 21. База данных с несколькими запросами
- 22. Руководство с несколькими PHP-запросами
- 23. Авария NodeJS с несколькими запросами
- 24. Проблема с несколькими табличными запросами
- 25. Управление запросами новых приложений
- 26. Управление запросами асинхронных магистральных сетей
- 27. Здание JSON с Node.js с несколькими запросами
- 28. Управление идентичными запросами с помощью RxJava
- 29. Laravel unnioAll между несколькими запросами
- 30. NodeJS: ошибка с несколькими запросами GET
Я думаю подробности об ошибках важно видеть, что вы пытаетесь исправить. Вы могли бы сохранить какое-то состояние в сеансе. – Tommy