Retornar imagem do servlet para a pagina jsp

10 respostas
J

Boa a tarde…

Alguém poderia me ajudar em como retornar a imagem do banco (onde salvei so o caminho) de um servlet e pega-la numa pagina jsp?

obrigada

10 Respostas

vinicius_roc

use request.serAttribute(“nome qualquer”, atributo).

no atributo utilize um de string com o caminho da imagem. Então você pode pegar no JSP utilizando EL. ${nome qualquer}

Ex:

Nunca fiz mas acredito assim deve dar certo.

Boa sorte

Caso de certo por favor poste aqui

Obrigado

Att,

Vinicius Roberto

Naruffy

Uma outro maneira seria

public class ImagemServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("image/jpeg");
        response.setHeader("Content-Disposition","inline");

        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        
        try {
            
            String consulta = "select Imagem from Tabela where Codigo = " + request.getParameter("codigo");
            connection = createConnection();
            preparedStatement = connection.prepareStatement(consulta);
            resultSet = preparedStatement.executeQuery();
            resultSet.next();
            
            byte[] conteudoArquivo = resultSet.getBytes("Imagem");
            response.getOutputStream().write(conteudoArquivo);   

            response.flushBuffer();
            
        } catch (SQLException e) {
            e.printStackTrace();
        }     
	}

}

ai no html

img src="ImagemServlet ?codigo=1"

[]s

J

vinicius

Não deu erro, mas na imagem aparece o seguinte:

vinicius_roc

Você conferiu o codigo do html que ele esta gerando para ver se a tag da imagem esta correta?

J

sim, esta correto

vinicius_roc

estranho entao…

poderia postar os codigos (JSP, Servlet e o html da pagina gerada) para darmos uma olhada?

J

Ok, segue abaixo o Servlet:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		try {
			String caminho = recuperaImagemDiretorio();	
			
			request.setAttribute("caminho", caminho); 
			
			RequestDispatcher r = request.getRequestDispatcher("testa-get.jsf");			 
			r.forward( request, response ); 
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
}

Página HTML Testa-get:

<html>
<body>
	<form action="/ToyStore/Upload.do" method="GET">	
		<img src="${caminho}" >
	</form>	
</body>
</html>
vinicius_roc

aparentemente esta certo!

Não sei oque pode ser

depois que você executa e pede para ver o codigo da pagina no lugar do ${caminho} aparece como?? talvez esteja errado ai.

Caso contrario desculpe, mas não sei oque pode ser =/

J

Também segui seu exemplo Naruffy, mas não aparece nada, nem acusa erro!

MrSpaceman

Esse caminho que você está passando é relativo ao contexto da aplicação ou ao sistema de arquivos?

Dá um System.out.println(caminho); e pega o path que ele tá mandando. O erro provavelmente é isso, e não programação.

Falow

Criado 23 de junho de 2009
Ultima resposta 25 de jun. de 2009
Respostas 10
Participantes 4