Я пытаюсь добиться следующего поведения с помощью Servlet 3.0 API:Servlet 3.0 включают в себя HTML-страницу
- послать щёток HTML страницу
- отправить последующие ответы, которые обновляют страницу
Это все работает, кроме единственного способа, которым я мог отправить исходную страницу, не получив ответ, написанный вручную, используя HttpResponse Writer ...
Я был wond если есть способ использовать что-то похожее на RequestDispatcher # include с html-страницей без проблем с AsyncContext. Некоторые вещи, которые я пытался до сих пор так и не получилось:
- использование AsyncContext # отправка: так же, как я прочитал в Интернете, она предназначена для отправки окончательного ответа на контейнер для того, чтобы сделать его
- use RequestDispatcher # forward: получение IllegalStateException из-за попытки записать больше контента в OutputStream
- use RequestDispatcher # include: если я инициализирую AsyncContext перед вызовом этого метода, request.isAsyncSupported возвращает true, после вызова метода он возвращает false , Я читал, что он называет flushBuffer() и устанавливает обязательство флага истинен на ответ
Кроме того, в Servlet 3.0 особое_разрешения есть некоторые строки с упоминанием, что диспетчерская от асинхронного сервлета к нормальному сервлета возможно, но будет преданием ответ. Я считаю, что статическая страница html относится к этой категории ...
Если у вас есть какие-либо идеи о том, как можно сделать элегантное дополнение, не влияя на способность по-прежнему отправлять потоковые ответы клиенту, пожалуйста, дайте мне знать.
Благодаря
Спасибо за ответ. Я пытаюсь использовать исключительно API Servlet 3.0 для достижения нажатия на сервер. Итак, я могу отправлять только асинхронные ответы. Это будет один вызов сервлета, и сервлет будет возвращать несколько ответов (это достигается за счет не отклика ответа, а просто его сброса). – fmoga
Я еще не играл с асинхронным апи. Но есть реализация https://atmosphere.dev.java.net/ comet! возможно, стоит посмотреть – Redlab