Problema com response em servlet!

0 respostas
marcosharbs

Olá amigos!

Estou com um problema que é o seguintes tenho um botão exportar na minha tela que vai gerar um arquivo excel, quando este botão é clicado ele passa por uma action e seta um atributo como OK e no meu jsp (estou usando struts) vejo se o valor desse atributo é igual a OK e então chamo uma função javascript que vai submeter um form que está mapeado para passar num servlet e esse servlet vai fazer a exportação de fato:

codigo no jsp:

<logic:equal value="OK" name="flgExportarPD1031" scope="request">
	<script language="JavaScript">
		gerarArquivo();
	</script>
</logic:equal>

codigo no servlet que vai exportar:

// Altera o cabeçalho HTML
        response.setContentType("application/octet-stream");
        response.setHeader("Pragma", "");
        response.setHeader("Cache-Control", "");
        response.setHeader("Expires", "");
        response.setHeader("Content-Disposition", "attachment; filename=" + hmArquivo.get("NOME"));
        //response.setHeader("Accept-Charset","ISO-8859-5");
        response.setContentLength(((byte[]) ((String)hmArquivo.get("ARQUIVO")).getBytes()).length);

        // Grava o array de bytes do documento no response
        response.getOutputStream().write(((byte[]) ((String)hmArquivo.get("ARQUIVO")).getBytes()));
        response.getOutputStream().flush();

O problema que estou achando que acontece é que ele não chega a renderizar a tela toda e já começa a executar o servlet e esse servlet meche no response alterando algumas coisas e não consigo da um sendRediretc ali dentro ou um requestDispatcher, alguém teria alguma idéia ou alguém já teve esse problema e conseguiu solucionar?

Obrigado a todos!

Criado 25 de maio de 2009
Respostas 0
Participantes 1