Flush no Servlet

Pessoal,

Alguém sabe como posso enviar dados para o browser cliente enquanto faço um processamento em meu Servlet? Já tentei o PrintWriter.flush() e o Response.flushBuffer().

Aí vai a forma que eu estou utilizando.

protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		PrintWriter out = response.getWriter();
		if ("Iniciar".equals(request.getParameter("iniciar"))) {
			if (!this.continuar) {
				this.continuar = true;
			} else if (!this.executando) {
				out.println("Iniciando integração dos dados...");				
				out.flush();
				HttpSession sessao = request.getSession();
				Usuario usuarioLogado = (Usuario) sessao
						.getAttribute("usuarioLogado");
				String siglaUnidade = usuarioLogado.getUnidade().getSigla();
				realizarIntegracoes(siglaUnidade);
			}
		} else if ("Parar".equals(request.getParameter("parar"))) {
			this.continuar = false;
			out.println("Parando integração dos dados...");
			out.flush();
		}
	}


private void realizarIntegracoes(String siglaUnidade) {
		this.executando = true;
		while (this.continuar) {
			enviarNaoIntegrados(siglaUnidade);
			buscarNaoIntegrados(siglaUnidade);
			try {
				Thread.sleep(30000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		this.executando = false;
	}

Agradeço antecipadamente qualquer ajuda,
Petrus Bastos.

ao mesmo tempo ??
vc quer treads ou servlet ?

no caso de servlet para enviar a informacao basta fazer

request.setAttirubute(“nomedoatributo”, valor);
RequestDispatcher view = request.getRequestDispatcher("./"+url);
view.forward(request, response);

att

Não cara, acho que eu não fui muito claro… deixa eu tentar explicar melhor.

Eu quero ir exibindo mensagens no browser do usuário ao longo do processamento do servlet.

Não analisei seu código, mas alguns browsers só começam a apresentar a resposta a partir do momento que o seu buffer interno é preenchido, portanto tente no início do processamento enviar um comentário do tipo:

for (int i = 0; i &lt 1000; i++) {
     out.println("<!-- Preenchendo o buffer do browser. -->");
}

Isso fará com que o browser comece a mostrar as mensagens (ServerPush).
O tamanho do buffer de cada browser eu não sei, faça uns testes aí e descubra um valor ideal para o i &lt 1000;

[]'s

Problema resolvido. Muito obrigado.