Download via servlet

Alguém sabe onde posso encontrar referencias de como fazer um download de um arquivo via uma solicitação a um Serlvet?

Não quero que o usuário possa baixar o arquivo via url (www.dominio.com/arquivo.zip), esse arquivo deve estar fora desse contexto, talvez dentro do WEB-INF, sei lá, e que o usuário fizesse uma requisição a um servlet e q este retornasse o arquivo mediante alguns parametros (user, senha, file).

É possível? Alguém conhece alguma referencia, procurei no fórum e não encontrei algo direto.

Agradeço,

Eduardo

Eduardo, nao sei se eh o q vc quer…

mas uma vez tive q fazer algo parecido…gerar um relatorio em .pdf, por ex, e depois abrir a janela de download p/ o usuario baixa-lo…

se nao me engano mto, o componente q usei chama-se download4j…pesquise por isso aki no GUJ ou no Google q vc vai achar alguma coisa…

se achar o link, coloko aki p/ vc…

falow

Obrigado, encontrei esse topico no guj:

http://www.guj.com.br/forum/viewtopic.php?t=3052&highlight=download4j

vou procurar no google mais sobre isso!

Na sua servlet você poder fazer isso:

File file = new File("nomedoarquivo");                
                    
if (file.exists())
{
    response.setHeader("Content-type", "application/octet-stream");
    response.setHeader("Content-Disposition","attachment;filename="" + file.getName() + """);

    FileInputStream in = new FileInputStream(file);
    OutputStream out = response.getOutputStream();

    int buflen = 1024;
    byte[] buffer = new byte[buflen];

    int read;
    int length = 0;

    while ((read = in.read(buffer, 0, buflen)) > 0) {
        length += read;
        out.write(buffer, 0, read);
    }

    response.setContentLength(length);

    out.flush();
    out.close();

    in.close();
}

Valeu leonardo, funcionou muito bem!