2013-03-09 3 views
2

У меня есть JSP с while (true), где данные отправляются в браузер. код фрагментаout.print не толкает данные в браузер

while (true) { 
    out.print("pushing some data to browser"); 
    out.flush(); 

    try { 
     Thread.sleep(1000); 
    } catch (InterruptedException e) { 
    } 
} 

Это работает наиболее часто, но редко данные не отправляются в браузер с интервалом в 1 секунду.

Вместо того, чтобы ставить в очередь и отображать все данные одновременно.

+0

Что такое мотивация для передачи данных периодически? Вы пытаетесь внедрить систему сообщений Comet? – zz3599

+0

Я использую этот цикл в качестве концепции кнопки (pushing данных от сервера к клиенту) – sasikals26

ответ

0

Вот объяснение, почему его не работает: JSP - это объект сервлета во время выполнения, а скрипт/выражения JSP вызываются как часть метода service() объекта Servlet.

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

Вам следует рассмотреть возможность внедрения CommetServlet путем расширения HttpServlet, который может отменить поддержку сервера приложений.

App Серверные примеры комета поддержка:

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

  • Нет связанных вопросов^_^