2

我已经看到了几个使用 Servlet 使用 JFreeChart 动态生成图表的示例,然后使用 img 标记将该图像包含在 JSP 中。例如:

<img src="/MyChartServlet" width="400" height="300" border="0" alt="" />

我的 servlet 使用 JFreeChart 生成图像效果很好,如果我直接在浏览器中调用它,我可以看到图像,如下所示:

http:/myurl/MyChartServlet?id=274

问题是我的 JSP 不显示图像。事实上,JSP 甚至没有调用 servlet。我知道这一点,因为我没有看到调用 servlet 时出现的日志中的调试条目。

在 Servlet 中我使用 JFreeChartChartUtilities.writeChartAsJPEG()方法将图像写入响应的输出流,因为我不想将图像写入磁盘。如前所述,servlet 在直接调用时可以正常工作。

我错过了什么?还是有更好的方法来做到这一点?也许一个普通的旧对象可以生成图表,我可以将它包含在 JSP 中?任何帮助,将不胜感激。

4

1 回答 1

1

你正在以正确的方式去做。从您所处的上下文中,您可能遇到某种相对路径问题。尝试

<img src="http://<full path to your servlet>" ...

此外,您的示例中有一个 ?id=274 ,但在您的 img src 中没有。如果需要,也将其放在那里。

如果您发布了您的 servlet 代码,这可能会有所帮助,但也要确保您在 servlet 中正确设置了内容类型

response.setContentType("image/jpeg");  
于 2012-09-10T15:30:08.787 回答