Visualizar uma imagem em uma pagina jsp

5 respostas
V

Pessoal,

estou tentando fazer um sistema que exibe algumas informações em formato texto, juntamente com uma imagem recuperada do banco de dados (my sql)

fiz uma função que apartir de um ID, recupera a imagem atraves de um vetor de bytes. O problema é que eu não sei como transformar esse vetor de bytes em imagem q possa ser visualizada em uma pagina jsp.

Como faço isso?
desde já agradeço.
Victor

5 Respostas

J

Você vai ter que criar um arquivo fisicamente num diretório da sua aplicação e apontar a tag IMG pra esse diretório.

Vai ficar assim:

<img src="/aplicacao/images/minhaFoto.jpg">
V

sim,

mas como eu faço para criar um arquivo .jpg fisicamente apartir do vetor de bytes?

vc poderia me informar as classes que eu devo utilizar??
Na verdade, o que eu to fazendo de uma forma, mas está dando problemas, pois o programa termina sua execução e nada aparece…

Este é o meu jsp…
Eu pego no banco de dados o vetor de bytes que corresponde a imagem e depois eu chamo o método gravaArquivo passando o response do jsp e o vetor de bytes.

<%
imagemBancoDados = gerenteImagem.BuscarImagem(formularioBusca.getIdImagemMacroscopica());
gerenteImagem.gravaArquivo(response, imagemBancoDados.getImagem());
    
%>

o método gravaArquivo é implementado assim:

public void geraArquivo(HttpServletResponse response, byte [] image) throws IOException
        {
            response.setHeader("Cache-Control", "no-store");
            response.setHeader("Pragma", "no-cache");
            response.setDateHeader("Expires", 0);
            response.setContentType("image/jpeg");
            ServletOutputStream out2 = response.getOutputStream();
            out2.write(image);
            out2.flush();
            out2.close();
        }

o problema eu acredito que esteja na linha ServletOutputStream out2 = response.getOutputStream(), pois no debug o programa para sua execução nesta linha.
Pesquisei na Internet e uns sites dizem que response.getOutputStream() entra em conflito com o out que já existe no jsp. Entretanto eu não posso utilizar esse out do jsp, pois eu preciso utilizar o método write.

J

Bom, como você está fazendo no .JSP?

Está colocando o nome do seu servlet lá na tag IMG ??

Dessa maneira?

<img name="imagem" src="<nome do servlet>" border="0">

A sim, e no seu servlet, você deve colocar todo o tratamento de output no método service.

P.S.: Trabalho de aula é??

V

Juliano,

Consegui resolver o problema.
criei um jsp apenas para exibir a figura.
Anteriormente, eu estava usando o mesmo jsp que apresentava a parte texto do formulario.
E no jsp da visualização do formulario, eu faço isto:

<img src="<mostrarImagem.jsp?idImagem=...>" border="0">

Obrigado!
P.S. Pq?, vc está fazendo o mesmo trabalho?

J

Não, heheh…já foi minha época de trabalho pra faculdade. É que tem outro carinha com a mesma dúvida e já vi acontecer aqui de mais de um aluno perguntar a mesma coisa.

Blz então…

Criado 15 de junho de 2006
Ultima resposta 18 de jun. de 2006
Respostas 5
Participantes 2