ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
4304
4304
EMPFEHLEN
-
Hallo!
Habe folgendes Problem:
Ich habe ein Servlet, in dem erzeuge ich einen Download, was auch wunderbar funktioniert. Nach dem Download möchte ich aber auf eine andere JSP, als die ursprüngliche verweisen. Wie kann ich das realisieren? Mit "rd.forward(request, response);" kriege ich immer eine Exception: "Cannot forward after response has been committed"
Hier mein Servlet:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
// Download des TAN-Bogens String datei = "C:/Programme/Apache Software Foundation/Tomcat 5.5/webapps/Banking/TAN/"; String dateiname = request.getSession().getAttribute("ktonr").toString() + ".pdf"; File file = new File(datei+dateiname); InputStream in = new FileInputStream(file); response.addHeader("Content-Type", "application/pdf"); response.addHeader("Content-Disposition", "attachment; filename="+dateiname); response.addHeader("Pragma", "public"); response.addHeader("Cache-Control", "max-age=0"); ServletOutputStream outs = response.getOutputStream(); byte pic[]= new byte[in.available()]; in.read( pic ); outs.write( pic ); outs.flush(); outs.close(); in.close(); // Nach dem Download wird die Datei gelöscht. file.delete(); request.setAttribute("Meldung", "Jo. Fertig."); RequestDispatcher rd = getServletContext().getRequestDispatcher("/gui/tan.jsp"); rd.forward(request, response);
Wenn ich die letzten drei Zeilen weglasse funxt alles, aber ich bleibe halt auf der ursprünglichen JSP.
Kann mir jemand helfen? Schon einmal Danke.
Thomas
-
31.03.06 15:04 #2oko Tutorials.de Gastzugang
Moin,
der Kern Deines Problems sind diese Zeilen:
ServletOutputStream outs = response.getOutputStream();
//...
outs.close();
// und danach dann
request.setAttribute("Meldung", "Jo. Fertig.");
RequestDispatcher rd = getServletContext().getRequestDispatcher("/gui/tan.jsp");
rd.forward(request, response);
Was glaubst Du, über welchen Kanal jetzt (nach outs.close()) noch eine weitere Seite an den Browser geschickt werden kann
-
Hi oko,
danke für die Antwort. Klingt irgendwie logisch, aber wie könnte man es denn ansonsten machen?
Thomas
Ähnliche Themen
-
Servlet 2 aus Servlet 1 aufrufen?! HttpUnit?!
Von stockhausen im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 20.09.10, 22:03 -
Mit PHP ein JAVA Servlet aufrufen und Antwort abwarten
Von P_H_I_L im Forum PHPAntworten: 4Letzter Beitrag: 26.01.10, 15:44 -
Servlet per Formular aufrufen
Von WIK-Lars im Forum JavaAntworten: 0Letzter Beitrag: 11.05.07, 15:14 -
Servlet im Browser aufrufen (II)
Von WIK-Lars im Forum JavaAntworten: 5Letzter Beitrag: 18.04.07, 08:42 -
Servlet im Browser aufrufen
Von WIK-Lars im Forum JavaAntworten: 7Letzter Beitrag: 17.04.07, 11:27





Zitieren
Login





