Динамично генерируйте JFreeChart в сервлете

Эти sys.path список содержит список каталогов, которые будут искаться модули во времени выполнения:

python -v
>>> import sys
>>> sys.path
['', '/usr/local/lib/python25.zip', '/usr/local/lib/python2.5', ... ]
5
задан Robert 10 August 2009 в 17:10
поделиться

2 ответа

Включите в ваш JSP-файл тег, где атрибут src - это имя вашего сервлета. Затем сервлет просто возвращает диаграмму PNG:

    OutputStream out = response.getOutputStream();
    response.setContentType("image/png");
    ChartUtilities.writeChartAsPNG(out, chart, width, height);

JSP-страницы действительно предназначены только для вывода HTML или других текстовых данных. Хотя вы можете заставить JSP выводить PNG, в этом нет никакой пользы.

Похоже, вы хотите создать динамическую страницу, которая обновляется в зависимости от состояния раскрывающегося меню менять. Для этого вам нужно использовать Javascript, который срабатывает при изменении меню и обновляет значение атрибута src тега img. Затем браузер перезагрузит изображение из вашего сервлета с новой диаграммой.

4
ответ дан 14 December 2019 в 01:13
поделиться

Я бы посоветовал вам использовать класс ServletUtilities . Он сохраняет в java tempdir И очищает, когда сеанс становится недействительным. :) Еще один совет для отображения файла - использовать сервлет DisplayChart для получения изображений. Это входит в 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=""/>
5
ответ дан 14 December 2019 в 01:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: