Хороший ли подход для немедленного создания большого отчета CSV в HTTP-ответе?

#java #http #spring-mvc #servlets

#java #http #spring-mvc #сервлеты

Вопрос:

Я создаю большой отчет CSV в своей службе Spring. Я использую OpenCSV для генерации. Это выглядит так:

 CSVWriter writer = new CSVWriter(printWriter);
    
for (.....) {
    writer.writeNext(row.toArray(new String[0]));
}
 

Теперь я перехожу HttpServletResponse response.getWriter() к CSVWriter , и он CSVWriter немедленно записывает в ответ. Но у меня есть сомнения. Правильный ли этот подход? Я имею в виду немедленное создание отчета для HTTP-ответа.

Я сделал это, потому что не хотел создавать временный файл на сервере.

Комментарии:

1. Почему бы и нет, если другого выбора нет? Если я не ошибаюсь, единственным узким местом здесь является клиент, который медленно загружает ответ (и вы можете решить обнаруживать и прерывать медленные соединения; не уверен в асинхронных сервлетах здесь) для этого не потребуется дисковое пространство. Кроме того, генерация отчетов может быть (очень) тяжелой операцией, поэтому вы также можете подумать о создании полного отчета и сохранить его где-нибудь, указав предварительный URL-адрес для последующего доступа к отчету (даже несколько раз), затем истечь и удалить его (все это делается простым веб-интерфейсом «только для доступа»сервис).