File Download sem framework web MVC

O que aprendi em quase 10 anos de experiência com desenvolvimento de software foi que conceitos são mais importantes do que ferramentas e tecnologias. Conceitos perduram por muitos anos, ferramentas não.

O que estou querendo dizer é que entender bem MVC é mais importante e útil do que saber como usar o último framework MVC da moda; saber OO é mais importante do que saber a sintaxe de uma linguagem de programação. Independentemente da linguagem ou plataforma.

Quando trabalhamos com aplicações Web é comum ter a ajuda do framework MVC para disponibilizar um arquivo para o cliente (navegador). No caso do VRaptor, normalmente basta um código como este abaixo:

public File foto(Perfil perfil) {
return new File("/caminho/foto-" + perfil.getId() + ".jpg");
}

O código é simples e resolve bem o problema, pois este é o objetivo de uma framework, certo? Mas o que acontece por debaixo dos panos? O que é enviado para o navegador? A imagem acima será exibida diretamente no browser ou o usuário poderá baixá-la? Qual o nome do arquivo será exibido para o usuário ao fazer download?

Muitas perguntas, muitas vezes desnecessárias… desnecessárias até o 1o problema surgir e você ter que identificar se o problema está no framework, servidor ou proxy da sua rede. Enfim, para ajudá-lo a entender parte do processo de download de arquivos numa aplicação Web nós blogamos exatamente sobre o assunto:

>> Como disponibilizar arquivos para download em Java

No post você vai aprender como fazer o download de um arquivo diretamente de uma Servlet, pois é exatamente isso que um framework MVC faz. Você vai aprender alguns cabeçalhos HTTP importantes e claro, como forçar aquela janelinha “Salvar como…”.

E aí, já desceu alguma vez do salto para programar mais baixo nível sem ajuda do seu framework favorito?

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s