Schnipp:
...
// Response erstellen und mit CSV-Download füllen
resp.reset();
resp.setHeader("Content-disposition", "inline; filename=eingang.csv");
resp.setContentLength(csvContent.length());
resp.setCharacterEncoding("iso-8859-1");
resp.setContentType("text/csv");
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(resp.getOutputStream(), "iso-8859-1"));
writer.write(csvContent.toString());
writer.flush();
writer.close();
Das ist ein Auszug aus dem Servlet welches sich um die Verarbeitung des Requests kümmert.
Vor dem Schnipp wird der csvContent (StringBuilder) zusammengebaut und mit den Daten gefüllt - darin befindet sich der komplette Inhalt der CSV-Datei. Diese Lösung funktioniert - sofern kein Overlay angezeigt wird. Ein Overlay würde ja gewöhnlich beim Seitenwechsel automatisch ausgeblendet werden, hier findet aber kein Seitenwechsel statt. Der Client schickt zwar ein Request zum Server, erhält aber als Antwort die CSV-Datei.
Wie schaffe ich es das Overlay auszublenden, wenn die Datei vom Server kommt? Mir fällt in diesem Fall nur Ajax als Lösung ein, damit kenne ich mich aber noch nicht aus und bräuchte - sofern Ihr keine andere Idee habt - einen Denkanstoß.