【问题标题】:Saving a PNG file on a server in a Java bean, using JSTL使用 JSTL 在 Java bean 中的服务器上保存 PNG 文件
【发布时间】:2009-08-28 14:37:02
【问题描述】:
我正在 JSTL 中编写一个更新页面,用户在其中输入一些数字。然后我调用一个 java bean——将数字作为参数传递——它使用 JFreeChart 创建一个 PNG 图像。当我使用
将文件直接保存在硬盘上时,所有这些都可以正常工作
ImageIO.write(myBufferedImage, "png", new File("C:/testChart.png"));
我还可以将图像保存到我的 tomcat 目录并在我在本地主机上运行网站时查看它。但是,一旦此代码在不是我本地主机的服务器上启动,保存到 tomcat 目录将不起作用。如何将此文件直接写入服务器..say 到我的 Eclipse 项目的 WebContent 文件夹(java bean 在 src 文件夹中)?提前感谢您的帮助。
【问题讨论】:
标签:
eclipse
jstl
jfreechart
javabeans
【解决方案1】:
我建议您使用ServletUtilities 类。它保存在 java tempdir 中,并在会话无效时进行清理。 :) 然后显示文件的另一个提示是使用 DisplayChart servlet 来获取图像。
这在 web.xml 中
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
这就是您使用 jstl 显示图像的方式:
<img src="<c:url value='/servlet/DisplayChart?'><c:param name='filename' value='${yourFileNameHERE}' /></c:url>" alt=""/>
【解决方案2】:
写入System.getProperty("java.io.tmpdir");返回的目录路径;