2010-06-24 3 views
0

Я пытаюсь добиться следующего поведения с помощью 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 относится к этой категории ...

Если у вас есть какие-либо идеи о том, как можно сделать элегантное дополнение, не влияя на способность по-прежнему отправлять потоковые ответы клиенту, пожалуйста, дайте мне знать.

Благодаря

ответ

0

Одно решение (не только один): если это просто HTML-страницы, а затем написать HTML-страницы непосредственно в HTML и делать Ajax звонки в serrvlet, который должен обеспечить обновления.

+0

Спасибо за ответ. Я пытаюсь использовать исключительно API Servlet 3.0 для достижения нажатия на сервер. Итак, я могу отправлять только асинхронные ответы. Это будет один вызов сервлета, и сервлет будет возвращать несколько ответов (это достигается за счет не отклика ответа, а просто его сброса). – fmoga

+0

Я еще не играл с асинхронным апи. Но есть реализация https://atmosphere.dev.java.net/ comet! возможно, стоит посмотреть – Redlab

0

используйте статические элементы на странице, хранящей данные, и используйте requestdispatcher.

Или вы можете просто просто обновить всю страницу с помощью такой конфигурации, используя response.setHeader («refresh», «5; URL = officer.html»).

Я действительно не понимаю, что вам нужно отправлять несколько запросов без ответа на сервлет. вы пытаетесь взаимодействовать с обслуживающей нитью несколько раз?

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