Olá Pessoal !
Estou começando a desenvolver em Java e já estou enfrentando um problema cabeludo. Se alguém tiver alguma dica ou sugestão , serão muito bem vindas !
A aplicação deve apresentar no browser imagens originalmente do formato TIF. Como não é um formato nativo do I.E. eu converti a imagem para JPG (sem salvar em disco) e já mando para o browser a imagem renderizada (encode) através da biblioteca do JAI em um servlet acessado por um JSP.
Então, a estrutura da minha aplicação está assim:
-
um arquivo JSP desenha a tela inicial no browser e apresenta um input text.
-
depois que o usuário coloca o parâmetro, faço um acesso ao banco e leio uma determinada qtde de imagens a serem apresentadas.
-
Daí no próprio JSP, eu faço um FOR que lê o caminho de cada arquivo conforme a quantidade de imagens. Chamando logo em seguida o servlet que envia a imagem.
Segue o trecho do JSP:
<%
int intI=0;
int intCont=0;
if(blnImagem == true){
out.println("<br>");
out.println("<table border=0 STYLE=border-collapse:collapse>");
out.println("<tr>");
for(intI=0;intI < Processo.intQtdImagens;intI++){
// AQUI EU PEGO O NOME DO ARQUIVO A SER EXIBIDO
Imagem.strImgTif = Imagem.IndicarImagem(Processo.strNmPath,Processo.strSubPath,Processo.intNuImagem,intI);
out.println("<th>");
out.println("<table border=1 STYLE=border-collapse:collapse rules='cols'>");
out.println("<tr>");
out.println("<th>");
%>
// AQUI EU CHAMO O SERVLET QUE IRÁ ENVIAR O ARQUIVO
<img src="ShowImg" WIDTH=100>
<%
out.println("</th>");
out.println("</tr>");
out.println("</table>");
%>
e o trecho do Servlet que converte e envia a imagem:
response.setContentType("image/jpeg");
ServletOutputStream sos = response.getOutputStream();
RenderedOp src = JAI.create("fileload", Imagem.strImgTif);
ImageEncoder encoder = ImageCodec.createImageEncoder("JPEG",sos,null);
encoder.encode(src);
sos.close();
Para uma imagem apenas isso funciona perfeitamente.
Pois é, o problema que estou encontrando é que se eu tenho 10 imagens para apresentar, o FOR é executado 10 vezes e passa 10 nomes de arquivos diferentes, mas
na página apenas a última imagem é apresentada 10 vezes. É como se ele processasse a TAG <IMG SRC= > ao fim de tudo de modo que o valor da variável
estática Imagem.strImgTif fosse lida apenas com o último valor e a mesma imagem carregada 10 vezes.
Como faço para resolver isso ? Alguém tem alguma idéia ?
Obrigado a todos !
Emidio Fidelis