生成图像并在JSP中显示它以及其他内容

我正在使用JFreeChart根据用户输入生成动态图表。 我有一个带有一些文本框和combobox的JSP,用户进行输入并提交它,并且Action处理它,生成图表的图像。 我需要在文本框/combobox下面的同一个JSP上显示此图像。

如果我使用response.setContentType("image/jpeg"); 等…然后我得到一个单独的图像页面。 我想把图像保存到一个文件,然后用访问它,但我不确定它是否会起作用(需要将它保存到WebContent,我可能无法一直访问它?)。

有没有办法以某种方式缓存图像,然后通过或其他东西在JSP中访问它? 也许JFreeChart有一个简单的方法来做我想要的事情?

如果重要的话,我也在我的webapp上使用struts和spring。

提前致谢。

我没试过,但你可以从org.jfree.chart.urls查看org.jfree.chart.imagemap和一个合适的URL生成器。 这里说明了实现PieURLGenerator的概要。

好吧,如果你在服务器端生成图像,你总是可以使用类似UUID的东西将它存储在临时目录中,为它生成一个唯一的名称,并在它的末尾连接图像文件扩展名。

确保在Web服务器上可以访问生成映像的目录,然后使用ajax( Direct Web Remoting )将服务器上的映像文件的URL路径发送回JSP,以便使用Javascript进行显示。

只需确保您还有一个chron作业或服务来立即清除目录中的旧文件。

您应该有一个servlet,可以只从URL创建您想要的图像。 然后,URL可以包含一个id,它会映射回程序中包含内存中原始数据的对象。 然后servlet生成图像并返回它。

然后,您可以使用Javascript在当前网页中设置图像的url,并且应该加载它。

这是因为JSP是面向字符的,它不适合二进制数据,所以你需要有一个servlet来做。