Обнаружение клиентских разъединений в веб-сервисах

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

6
задан Badro Niaimi 27 May 2016 в 12:00
поделиться

1 ответ

Я не знаком с Apache, CXF, но следующее должен быть применим к любому Java основанная на сервлете платформа.

Чтобы определить, разъединился ли пользователь (кнопка остановки, закрыл браузер, и т.д.), сервер должен попытаться отправить пакет. Если соединение TCP/IP было закрыто, IOException будет брошен.

В теории JAVA-приложение могло отправить пробел в различных точках во время обработки. IOException сигнализировал бы, что клиент ушел, и обработка может быть прервана.

Однако может быть несколько проблем с этой техникой:

  1. Отправка символов во время обработки заставит ответ "фиксироваться", таким образом, сможет быть невозможно установить HTTP-заголовки, cookie, и т.д. на основе результата продолжительной обработки серверной стороны.

  2. Если поток вывода будет буферизован, то пробелы не будут сразу отправлены, таким образом, не выполняя соответствующий тест. Может быть возможно использовать flush() как обходное решение.

  3. Может быть трудно реализовать эту технику для данной платформы или технологии представления (JSP, и т.д.), Например, код рендеринга страницы не сможет к отправленному тип контента после того, как ответ фиксировался.

2
ответ дан 17 December 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: