生成图像并在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来做。
- JNI_CreateJavaVM退出代码-1?
- 将jasper导出为pdf时,NoClassDefFoundError:com / itextpdf / text / DocumentException
- 为什么外部类在java中不是静态的?
- maven-site plugins 3.3 java.lang.ClassNotFoundException:org.apache.maven.doxia.siterenderer.DocumentContent
- Java Hibernate映射exception! (无法确定类型:java.util.Map)
- Java,在两个日期之间获取日期
- 不推荐使用包装服务器引导程序,还有什么选择?
- SimpleDateFormat方法解析中可能出现的错误
- 翻译的最佳实践
- 无法写入超出特定大小的DataOutputStream – OutOfMemoryError
- 在JSP中获取当前文件名