【问题标题】:display images using servlets使用 servlet 显示图像
【发布时间】:2011-07-04 09:32:25
【问题描述】:

我有一个场景,我需要显示表格(使用 JTable 生成)将其转换为 png 图像,然后使用 servlet 显示它们。

以下是servlet中显示表格的代码:

{
        table = u.generateTableChart("datamonth");    
        saveToServlet(table, table.getTableHeader(), p_resp);
}

void saveToServlet(JTable table, JTableHeader header,
            HttpServletResponse p_resp)
    {

        int w = Math.max(table.getWidth(), header.getWidth());
        int h = table.getHeight() + header.getHeight();
        OutputStream out = null;
        BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2 = bi.createGraphics();
        header.paint(g2);
        g2.translate(0, header.getHeight());
        table.paint(g2);
        g2.dispose();
        try {
            p_resp.setContentType("image/png");
            out = p_resp.getOutputStream();
            ImageIO.write(bi, "png", out);

        } catch (IOException ioe) {
            System.out.println("write: " + ioe.getMessage());
        }
    }

当我尝试在网页上查看它时,这似乎引发了这个错误 图像错误太多,无法显示。

我可以将文件存储在临时位置,并且可以查看图表。

对于使用 JFreeCharts 生成的图表,我正在使用这个:

 ServletOutputStream out = null;

    try {
        out = p_resp.getOutputStream();
        p_resp.setContentType("image/png");
        chart=u.genarateLineChart(m_martiniInstance);
        ChartUtilities.writeChartAsJPEG(out, chart, 625, 500); 
    }

还是不走运

提前致谢, 八卦

【问题讨论】:

  • 您的服务器在哪个平台(Windows、Linux)上?
  • @SJuan tomcat 服务器在 RHEL 上
  • @Bhavya:你确定图片是 RGB 格式的吗?如果您生成的图像不适合屏幕使用,通常会发生此错误。
  • 您可以尝试下载文件而不是查看它吗?我记得在使用从 Linux 控制台启动的 java 图形库时遇到了一些麻烦,因为 X 库没有加载。

标签: java swing servlets jfreechart


【解决方案1】:

我认为问题是您将内容类型设置为 "image/png" 但写 jpeg writeChartAsJPEG 使用

ChartUtilities.writeChartAsPNG(...)

【讨论】:

  • @Prashanth 我更改了代码并进行了检查。这似乎也没有帮助
  • 通常响应从浏览器缓存使用 ctrl+F5 完全重新加载,或删除浏览器缓存并尝试重新加载图像
  • 我可以使用提供的代码查看折线图,但不能使用 Jtable,对此有任何答案吗?
  • 建议你把它作为一个单独的问题来解决!
猜你喜欢
  • 2013-01-11
  • 2011-11-08
  • 2013-01-24
  • 2012-07-28
  • 2011-07-06
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 2012-11-21
相关资源
最近更新 更多