[JSP] Dynamischer Text als Download anbieten

colblake

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine Webapplikation (jsp) die einen dynamischen Text als Ausgabe erzeugt. Diesen Text möchte ich gerne in einem Link als Download anbieten, ohne ihn erst als File auf dem Server zwischen zu speichern.

Geht das? Wenn ja, wäre ich für einen Ansatz/Lösung dankbar.

Gruß
ColBlake
 
Ja das geht. Du kannst ein Servlet definieren und dein Link auf dieses Servlet zeigen lassen. Das Servlet schreibt dann deine Textdatei direkt in den Ausgabestream. Das alles kannst du über das Response Objekt in doGet angeben. Nicht vergessen den Content Type etc zu setzen.
 
Hat funktioniert, danke.

hier die Lösung:
Habe ein Servlet erstellt mit folgendem inhalt:

Java:
public void doPost(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException 
	{
		String txt;
		if(request != null)
		{
			Object o=request.getParameter("csvContent");
			if(o == null)
			{
				System.out.println("ERROR: Das Feld csvContent konnte nicht gefunden werden.");
				return;
			}
			
			txt=URLDecoder.decode((String)o); //Für die Lösung nicht wichtig.
			response.setHeader("Content-Disposition", "attachment;filename=blub.csv");
			
			response.setContentType("text/csv");
			response.getOutputStream().write(txt.getBytes());
			response.getOutputStream().flush();
			response.getOutputStream().close();
			response.flushBuffer();
		}
		else
			System.out.println("ERROR: Request ist null");
	}

Gruß
Col.Blake
 

Neue Beiträge

Zurück