Trabalhando com Fotos em JSP
Olá a todos (as) estou muito motivado e feliz que nossa audiência no grupo Devmedia, tem sido cada vez mais crescente, empolgante e com isso vamos trabalhando mais e mais para atende-los de forma gratificante.
Nesse artigo vamos tratar de um assunto que muitos amigos têm me perguntando como trabalhar com imagens usando Java na Web.
Necessariamente não tem somente um modelo de trabalho para esse fim, existem pessoas que preferem trabalhar com o arquivo físico e outros com os arquivos de modo binário, salvando-os em bancos de dados e ainda outros que somente alimentam url’s de servidores externos que mantém um banco de dados terceirizado de sua estrutura.
Aqui hoje mostro como iremos fazer para salvar uma imagem e depois recuperá-la em um banco de dados de fotos de pessoas.
Primeiramente vamos ter idéia de como utilizar isso em uma tela de cadastro, conforme a figura abaixo:
fig.1
Obs:Os dados nos campos desse pequeno cadastro, foram “destruídos” de propósito, ok? Só pra garantir.
Como vocês podem ver há comandos que devemos ter em mente que nossa aplicação vai necessitar:
· Incluir foto (só pode incluir, se já houver um cadastro previamente inserido no seu banco de dados. Assim normalmente só colocamos o recurso de foto no Update do seu CRUD[i]);
· Remover foto;
· Atualizar foto;
· Ampliar foto(Zoom);
Preparando o ambiente
Supondo que você já tenha seu banco de dados instalado, vamos criar uma pequena tabela para armazenarmos essa informação.
fig.2
Note que criamos um campo do tipo LONGBLOB, para armazenarmos a foto. No caso do MySQL, que estou usando para implementar essa rotina e que você pode implementar em qualquer outro banco de dados que suporte campos do tipo primitivo BLOB, nesse caso é o mais recomendado, pois além de ser binário, ele já se limita à um tamanho específico de bytes que será enviado ao seu servidor. Ou seja quando trabalhamos com imagens, seu armazenamento, sua consulta, enfim suas manipulações tornam-se pesadas para o servidor, ainda mais se tudo isso for rodar online num pequeno servidor e de conexão ruim, portanto é muito apropriados que nós desenvolvedores tomemos cuidado e façamos nossos usuários armazenar num f
ormato adequado (JPEG, por exemplo) e num tamanho acessível e acordado com a realidade do negócio.
Claro que se for preciso que você precise mais de resolução, mais qualidade deve se preocupar menos com o tamanho da foto no seu banco de dados e procurar uma resolução que atenda mais a qualidade do seu projeto como um todo.
Para maiores informações sobre o tipo desejado, ou o mais adequado ao seu projeto/negócio acesse a página http://dev.mysql.com/doc/refman/5.0/es/string-type-overview.html. Nessa página você encontrará todas as informações necessárias, inclusive como setar(configurar) da melhor maneira possível.
No próximo artigo iremos construir nossas classes de manipulação de imagens com Servlets exclusivos.
Um Abraços
Carlos Eduardo
[i] CRUD- Create Retrieve Update Delete- acrônimo de lingua inglesa, que remete as operações básicas de um cadastro em um banco de dados: Inserção, Consulta, Atualização e Exclusão.