2009-02-26 3 views
0

У меня есть html-страница в моем веб-приложении . Страница заблокирована клиентом и разблокирована одним и тем же клиентом. , если клиент забывает разблокировать или закрыть браузер, нажать кнопку «Назад» на странице и другие ссылки, страница будет заблокирована всегда и не может быть разблокирована. Мне нужно разблокировать страницу в вышеуказанных случаях, если он забыл разблокировать . СпасибоКак обработать событие закрытия браузера в сервлетах

ответ

1

Укажите время ожидания блокировки. Поскольку http является апатридом, вы не можете наблюдать за клиентом «обычным способом».

EDIT: Я бы выполнил операцию протокола на клиент/блокировку на сервере, установив/соблюдая некоторый флаг bool. A TimerTask наблюдает за флагом периодически, установив флаг на false, если это true и убивает замок, если он false.

+0

как я могу это сделать – 2009-02-26 09:49:26

+0

@abc: Он будет полностью зависеть от того, как вы начинаете блокировку. –

1

Я предлагаю вам рассмотреть дизайн, более соответствующий эксплуатационным характеристикам вашей среды.

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

Наличие явного блокировки и разблокировки пользователя/клиента легко кодировать, но сложно использовать (и мы все заботимся об опыте пользователей!) Cheerio.

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