java - 如何在 JSP 中包含 JFreeChart servlet 图像

标签 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 中?任何帮助将不胜感激。

最佳答案

您的做法是正确的。您可能在所处的上下文中遇到某种相对路径问题。尝试

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

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

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

response.setContentType("image/jpeg");  

关于java - 如何在 JSP 中包含 JFreeChart servlet 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12354614/

相关文章:

java - 修改其副本时保持原始 Vector 完整

java - 杰汤。按顺序打印所有文本节点

java - ClassNotFoundException : org. apache.hadoop.conf.Configuration 启动 Flink SQL 客户端

java - 如何在jSTL中编写涉及3个列表的foreach?

jsp - 如何将隐藏字段中的数据从一个jsp页面传递到另一个jsp页面?

java - 转换 CRUD JSP 应用程序以在 CQ5 (OSGi) 中使用

java - HttpServletRequest 中的 getRequestURI 和 getPathInfo 方法有什么区别?

java - 反转二叉树的交替级别

java - 为什么 EJB 是线程安全的而 servlet 不是?

java - BeanAlreadyExistsException - Oracle WebLogic