Как установить Content-Length в заголовке ответа для диаграммы Jfree? - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть сервлет, который создает диаграмму jfree.По умолчанию он возвращает кодирование передачи в виде чанков.Но я должен установить Content-Length в заголовке ответа.

final JFreeChart chart = ChartController.createChart();

          final int chartWidth = ChartUtils.calculateWidth(request);
          final int chartHeight = ChartHelper.getQuickViewChartHeight();

          final ServletOutputStream out = response.getOutputStream();
          response.setContentType("image/png");       
          ChartUtilities.writeChartAsPNG(out, chart, chartWidth, chartHeight);

1 Ответ

0 голосов
/ 15 декабря 2018

Как предложено здесь , не имеет смысла устанавливать заголовок длины содержимого , а также использует кодирование передачи по частям.В любом случае, как указано здесь , вы можете использовать ChartUtilities.encode() для определения длины байта массива кодированных изображений:

byte[] b = ChartUtilities.encode(chart.createBufferedImage(chartWidth, chartHeight));
int imageLength = b.length;

Позже вы можетеwrite() закодированное изображение для выходного потока:

out.write(b);
...