JasperReport executando no preview

Ola

Eu tenho essa classe que roda meu relatorio
so que ele abre em pdf eu gostaria executar no preview
como roda no Ireport.
Te como ?

package br.com.globalcode.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.util.JRLoader;

public class GeraRelatorioPedidos extends HttpServlet {
    
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException  {
        
        // obtém a conexão com o banco de dados
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/basedados", // coloque o IP se não for usado localhost
                    "root",        // mude para o nome do usuário do seu bd
                    "123456");   // mude para a senha deste usuário
        } catch (Exception e) {
            System.out.println("Erro ao obter conexao via DriverManager: "                    
                    + e.getMessage());
        }
        
        // gera o relatório
        ServletContext context = getServletContext();
        byte[] bytes = null;
        try {
            // carrega os arquivos jasper
            JasperReport relatorioJasper = (JasperReport)JRLoader.loadObject(
                    context.getRealPath("/WEB-INF/reports/RelatorioPedidos.jasper"));
            JasperReport subrelatorioJasper = (JasperReport)JRLoader.loadObject(
                    context.getRealPath("/WEB-INF/reports/RelatorioItens.jasper"));
            // parâmetros, se houverem
            Map parametros = new HashMap();
            parametros.put("pageRoot", context.getRealPath("/"));
            parametros.put("subReport", subrelatorioJasper);
            // direciona a saída do relatório para um stream
           [b] bytes = JasperRunManager.runReportToPdf(relatorioJasper,parametros,conn);[/b]
        } catch (JRException e) {
            e.printStackTrace();
        }
        if (bytes != null && bytes.length &gt 0) {
            // envia o relatório em formato PDF para o browser
        [b]    response.setContentType("application/pdf");[/b]
            response.setContentLength(bytes.length);
            ServletOutputStream ouputStream = response.getOutputStream();
            ouputStream.write(bytes, 0, bytes.length);
            ouputStream.flush();
            ouputStream.close();
        }
        
    }
    
}

andredeividi,

Saida com JasperViewer (ver 1º exemplo):
http://www.javafree.org/javabb/viewtopic.jbb?t=855140

Saida em HTML:
http://www.jwebhosting.net/servlets/jr123/jsp/source.jsp?filename=/viewjava/FillServlet.java

Saida em XLS:

ASOBrasil

Muito Obrigado pela dica.

Porem eu ainda continuo com o problema
num executa nada segue o meu codigo

[code]package br.com.globalcode.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;
import net.sf.jasperreports.view.JasperViewer;

public class GeraRelatorioPedidos extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException  {
    
    // obtém a conexão com o banco de dados
    Connection conn = null;
    try {
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/ecommerce", // coloque o IP se não for usado localhost
                "root",        // mude para o nome do usuário do seu bd
                "root");   // mude para a senha deste usuário
    } catch (Exception e) {
        System.out.println("Erro ao obter conexao via DriverManager: "
                + e.getMessage());
    }
    
    // Na variavel pathJasper ficara o caminho do diretório para os relatórios compilados (.jasper)
    String pathJasper = getServletContext().getRealPath("/WEB-INF/reports")+ "/";
    
    // Parametros do relatorio
    Map parametros = new HashMap();
    parametros.put("1", pathJasper + "Cadastro.jasper");
    try {
        
       
        
        // Aqui ele cria o relatório e exibe no JasperViewer
        JasperPrint impressao = JasperFillManager.fillReport(pathJasper + "Cadastro.jasper", parametros,conn);
        JasperViewer jrviewer = new JasperViewer(impressao,false);
        jrviewer.viewReport(impressao);
        
        
    } catch (Exception e) {
      JOptionPane.showMessageDialog(null,"Erro");
    }
    
}

}
[/code]

Tenho que mexer no config do TomCat ?

desde ja agradeço muito

andredeividi,

Já tentou executar esse cara sem ser em servlet para ver se funciona normalmente?

ASOBrasil

Quero te agradecer profundamente a sua ajuda.

Meu conhecimento em servlet e muito restrito estou aprendo agora
e sozinho.

O codigo acima roda lega ele abre em pdf
e não testei esse codigo sem ser servlets vou testar e depois dou o parecer

desde ja agradeço

Montei esse codigo em aplicação desktop
e rodou de primeira.

No servlet não da Excption so abre uma pagina em branco

desde ja agradeço