[RESOLVIDO]Passando Imagem de servlet para JSP

Olá a todos, consegui inplementar um servlet, sendo que não estou conseguindo passar a imagem para o JSP, como posso fazer, por favor, me ajudem!!

Servlet

import java.awt.Color;    
import java.io.BufferedOutputStream;    
import java.io.ByteArrayOutputStream;    
import java.io.IOException;    
import java.io.OutputStream;    
    
import javax.servlet.RequestDispatcher;  
import javax.servlet.ServletException;    
import javax.servlet.http.HttpServlet;    
import javax.servlet.http.HttpServletRequest;    
import javax.servlet.http.HttpServletResponse;    
    
import org.jfree.chart.ChartFactory;    
import org.jfree.chart.ChartRenderingInfo;    
import org.jfree.chart.ChartUtilities;    
import org.jfree.chart.JFreeChart;    
import org.jfree.chart.entity.StandardEntityCollection;    
import org.jfree.chart.plot.CategoryPlot;    
import org.jfree.chart.plot.Plot;    
import org.jfree.chart.plot.PlotOrientation;    
import org.jfree.chart.renderer.category.BarRenderer3D;    
import org.jfree.data.category.DefaultCategoryDataset;    
import org.jfree.data.general.DefaultPieDataset;    
    
    
public class ChartServlet extends HttpServlet {    
         
    /**  
     * atributo serial;  
     */    
    private static final long serialVersionUID = -1997245402770915920L;    
    
    public void doGet(HttpServletRequest request, HttpServletResponse response)     
        throws ServletException, IOException {    
            
       doGeneratePieChart(request,response);    
            
    }    
        
    protected void doGeneratePieChart(HttpServletRequest request, HttpServletResponse response)     
        throws IOException, ServletException {    
            
        try {    
                
            DefaultPieDataset ds = new DefaultPieDataset();    
                ds.setValue("Norte", 13000000);    
                ds.setValue("Nordeste", 48000000);    
                ds.setValue("Centro-Oeste", 11000000);    
                ds.setValue("Sudeste", 73000000);    
                ds.setValue("Sul", 25500000);    
            
            JFreeChart chart =     
                ChartFactory.createPieChart("População Nacional", ds, true, false, false);// create your chart    
                chart.setBackgroundPaint(Color.white);    
                    
            ByteArrayOutputStream baos = new ByteArrayOutputStream();    
               
            ChartRenderingInfo info = new ChartRenderingInfo(new  StandardEntityCollection());    
                
            ChartUtilities.writeChartAsJPEG(baos, 1.0F, chart,400, 250, info);    
                
            response.setContentType("image/jpg");    
                
            OutputStream out = new BufferedOutputStream(response.getOutputStream());    
            out.write(baos.toByteArray());    
            out.flush();    
           // response.flushBuffer();   
                         
            
            out.close();    
        } catch (IOException e) {    
            e.printStackTrace();    
        }    
    }    
}    

JSP

<html>  
<body>  
  
<table>  
  
<img src="ChartServlet">  
  
</table>  
</body>  
</html> 

Oi Natasha, tudo bem?
Acho que esse link aqui vai te ajudar muuuuuuito

http://www.guj.com.br/posts/list/130464.java

:smiley:

Olá oddy.silva,
Obrigada pela resposta, olhei o tópico que você colocou, o problema é que ele já informa o caminho da imagem e no meu caso eu não crio essa imagem.

Hoje se eu startar esse servlet ele pede para eu baixar um arquivo sem extensão, quando eu renomeio para .jpg, fica o gráfico que eu quero, esse é o meu problema que eu não consigo resolver!.

Já tentou isso:

<servlet-mapping>
    <servlet-name>ChartServlet</servlet-name>
    <url-pattern>/chart.jpg</url-pattern>
</servlet-mapping>

Ou com servlet 3.0:

@WebServlet(name = "ChartServlet", urlPatterns = { "/chart.jpg" }
public class ChartServlet extends HttpServlet {

Na classe que ele esta criando a imagem acrescenta .JPG pra salvar nessa extensão direta. Faz um método para se salvar essa imagem que ele cria em um local no servidor tipo C:\windows\temp\imagemGrafico.jpg ou na propria pasta que esta sua aplicação.

depois na JSP tu aponta essa imagem que esta salva nessa pasta !!

Sera que resolveria??

Bom seria criar o gráfico em outra classe … deixar o servlet mais para redirecionamentos, só uma sugestão …

bjo = **

Obrigada dev.rafael e akbardock15,

Puxa dev.rafael, era isso mesmo, eu não tinha pensado nisso, eu tenho muito que aprender ainda. rsrsrs

Vou seguir o seu conselho kbardock15, eu ainda vou trabalhar nesse servlet ainda, só estava tentar fazer funcionar meu gráfico.

<servlet-mapping>  
    <servlet-name>ChartServlet</servlet-name>  
    <url-pattern>/chart.jpg</url-pattern>  
</servlet-mapping>  

Obrigada a todos e beijos