如何在JSP中包含JFreeChart servlet映像

时间:2012-09-10 15:16:00

标签: java jsp servlets jfreechart

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

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

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

http:/myurl/MyChartServlet?id=274

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

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

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

1 个答案:

答案 0 :(得分:1)

你正确地走这条路。您可能从您所处的环境中遇到某种相对路径问题。尝试

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

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

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

response.setContentType("image/jpeg");