Download de vários arquivos com Servlet

Boa tarde galera
Estou com um problema em realizar o download de vários arquivos.
Apenas um arquivo eu consigo, porém preciso fazer de vários ao mesmo tempo.
A minha aplicação consiste no total de 10 documentos, onde o usuário escolhe quais ele necessita gerar a partir de paramentos informados na pagina JSP.
O servlet recebe esses parâmetros e processa os documentos em PDF, salvado-os em um servidor Linux.
Necessito nesse momento fazer o download desses documentos gerados.
Abaixo parte do fonte:

    for (i = 0; i < n; i++) {

                    File arquivo = new File(diretorio + array.get(i));

                    System.out.println("ARQUIVO: " + arquivo); //aqui ele printa o nome de todos os arquivos corretamente, mas faz o download apenas do primeiro

                    response.setHeader("Content-Disposition", "attachment; filename = " + arquivo.getName());
                    response.setContentType("octet-stream");
                    int BUFF_SIZE = 1024;
                    byte[] buffer = new byte[BUFF_SIZE];
                    response.setContentLength((int) arquivo.length());
                    FileInputStream fis = new FileInputStream(arquivo);
                    OutputStream os = response.getOutputStream();
                    int byteCount = 0;
                    do {
                        byteCount = fis.read(buffer);
                        if (byteCount == -1) {
                            break;
                        }
                        os.write(buffer, 0, byteCount);
                        os.flush();
                    } while (true);
                }

Acho que para fazer isso, vc terá que manipular os arquivos colocando-os num ZIP e, então, realizando o download.

Tentei…
E no zip criou apenas com o primeiro arquivo também…

Não vi no seu código a criação do zip. Como vc fez?

int cont;
   byte[] dados = new byte[TAMANHO_BUFFER];
                
   BufferedInputStream origem = null;
   FileInputStream streamDeEntrada = null;
   FileOutputStream destino = null;
   ZipOutputStream saida = null;
   ZipEntry entry = null;
           
   try {
        destino = new FileOutputStream(new File(arqSaida));
        saida = new ZipOutputStream(new BufferedOutputStream(destino));
        File file = new File(arqEntrada);
        streamDeEntrada = new FileInputStream(file);
        origem = new BufferedInputStream(streamDeEntrada, TAMANHO_BUFFER);
        entry = new ZipEntry(file.getName());
        saida.putNextEntry(entry);
                    
        while((cont = origem.read(dados, 0, TAMANHO_BUFFER)) != -1) {
            saida.write(dados, 0, cont);
        }
        origem.close();
        saida.close();
    } catch(IOException e) {
        throw new IOException(e.getMessage());
    }

Dá algum erro? O código não parece está dentro de um loop de arquivos, e vc está fechando o stream do zip, daí não será possível incluir outros arquivos.

Consegui.
Não estava no loop para gravar no zip.
Obrigado