gpt4 book ai didi

java - 在servlet中动态生成JFreeChart

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:24 24 4
gpt4 key购买 nike

我正在尝试使用 JFreeChart 动态生成图形作为用户选择的一些复选框的结果,但我无法弄清楚如何最好地将生成的数据集转换为图表形式(我有代码可以从这些数据集制作图表,但需要生成 png)并进入 JSP View 。目前,我只能考虑将数据集发送到 JSP,但想不出从那里做什么……我该怎么做才能做到:用户将表单提交给 servlet,servlet 生成数据集,从数据集生成图表,图表中的 png,最后发送到 jsp 的 png?或者类似的东西。

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{

String[] metrics = request.getParameterValues("metrics");
String[] fileNames = request.getParameterValues("files");

List<CategoryDataset> results = new ArrayList<CategoryDataset>();
DMCalc calculator = new DMCalc(metrics, fileNames);
calculator.calculateResults();
results.add(calculator.getEditDistanceDataset());
results.add(calculator.getSimilarityDataset());
results.add(calculator.getTimeChartDataset());

request.setAttribute("results", results);
RequestDispatcher view = request.getRequestDispatcher("metricResult.jsp");

view.forward(request, response);
}

更新:

通过让 doPost 方法从用户帖子生成数据集,然后可以将它们存储在字段中,随后 RequestDispatcher 将用户转发到 JSP,然后 JSP 在 img 标记中调用 servlet 的 doGet 方法,该方法使用存储的数据集早些时候在字段中生成一个 png,然后由 JSP 中的 HTML 显示。

最佳答案

我建议您使用 ServletUtilities类(class)。它保存在 java tempdir 中,并在 session 失效时进行清理。 :) 另一个显示文件的提示是使用 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=""/>

关于java - 在servlet中动态生成JFreeChart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1255717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com