Возвращает динамически сгенерированную круговую диаграмму из сервлета и отображает ее в JSP.

Нужна ваша помощь!

Я нашел этот веб-сайт > http://www.avajava.com/tutorials/lessons/how-do-i-return-a-dynamically-generated-pie-chart-from-a-servlet.html

На этом веб-сайте показано, как создать круговую диаграмму и отобразить ее в сервлете. Мне удалось отобразить в сервлете. Однако вместо этого я хочу отображать в JSP. Я пытался найти ответ. Некоторые говорили, что в JSP сопоставьте источники img с сервлетом. Я пытался, но мне не удалось это сделать.

Ниже приведены мои коды. Было бы здорово, если бы кто-нибудь помог мне отобразить диаграмму в jsp. Я новичок в jsp/servlet. Спасибо!

на chart.jsp

<img border="0" src="ChartExample/src/servlet/ChartServlet.java"
    width="100" height="100">

в ChartServlet.java

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("image/png");

    OutputStream outputStream = response.getOutputStream();

    JFreeChart chart = getChart();
    int width = 500;
    int height = 350;
    ChartUtilities.writeChartAsPNG(outputStream, chart, width, height);
}

public JFreeChart getChart() {
    DefaultPieDataset dataset = new DefaultPieDataset();


    Statement stmt = null;
    Connection currentCon = null;


    ChartDao ChartDao = new ChartDao ();
    int chickenrice = ChartDao.CheckChickenRiceRow();
    int currychicken = ChartDao.CheckCurryRiceRow();

    dataset.setValue("Chicken Rice", chickenrice);
    dataset.setValue("Curry Chicken", currychicken);

    boolean legend = true;
    boolean tooltips = false;
    boolean urls = false;

    JFreeChart chart = ChartFactory.createPieChart("Orders", dataset, legend, tooltips, urls);

    chart.setBorderPaint(Color.GREEN);
    chart.setBorderStroke(new BasicStroke(5.0f));
    chart.setBorderVisible(true);

    return chart;
}

РЕДАКТИРОВАТЬ:

Сервлет отображается в web.xml:

<servlet> 
   <servlet-name>ChartServlet</servlet-name>
   <servlet-class>servlet.ChartServlet</servlet-class>
 </servlet> 
 <servlet-mapping>
    <servlet-name>ChartServlet</servlet-name>
     <url-pattern>/piechart</url-pattern>
  </servlet-mapping>

person Purple Owl    schedule 12.12.2013    source источник
comment
Вам нужно указать servlet-url в атрибуте src вместо местоположения исходного файла Java.   -  person kv-prajapati    schedule 12.12.2013
comment
@AVD, так это так? ‹граница изображения=0 src=/ширина круговой диаграммы=100 высота=100›   -  person Purple Owl    schedule 12.12.2013
comment
Это правда. <img src='/piechart alt=''/›`   -  person kv-prajapati    schedule 12.12.2013


Ответы (1)


Вы можете протестировать эту диаграмму, открыв браузер с URL-адресом http://localhost:8080/yourcontext/piechart, и если все в порядке, используйте относительный URL-адрес или абсолютный URL-адрес с атрибутом src тега img.

<img src='/piechart' alt='Pie chart'/>

Or

<img src='http://localhost:8080/yourcontext/piechart' alt='Pie chart'/>
person kv-prajapati    schedule 12.12.2013