一尘不染

如何在JSP中包含JFreeChart Servlet映像

jsp

我已经看到了几个示例,这些示例使用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中,我正在使用JFreeChart
ChartUtilities.writeChartAsJPEG()方法将图像写入响应的输出流,因为我不想将图像写入磁盘。如前所述,当直接调用servlet时,它可以正常工作。

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


阅读 290

收藏
2020-06-08

共1个答案

一尘不染

您正在以正确的方式进行操作。您所处的上下文可能存在某种相对路径问题。请尝试

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

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

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

response.setContentType("image/jpeg");
2020-06-08