# File Output Servlet



## hans-sonny (29. Nov 2014)

Hi leute,

ich hab ein Problem und zwar generiere ich zur laufzeit ein XML file was runtergeladen werden soll.

aktuell wird meine Seite aber durch das XML ersetzt. 

ich will dass der download instant startet und nicht die seite ersetzt wird. 

mein code:


```
// This should send the file to browser
        OutputStream out = response.getOutputStream();
        // Generating Result .. output steam
        Result result = new StreamResult(out);
        Source source = new DOMSource(doc);

        // Write the DOM document to the file in this case to the outputstream
        Transformer xformer = TransformerFactory.newInstance().newTransformer();
        xformer.transform(source, result);

        out.close();
        out.flush();
```


----------



## stg (29. Nov 2014)

Wie sieht der HTTP header aus, den du in deinem Servlet setzt? 
Speziell sollte Content disposition auf attachment und nicht auf inline stehen.

Ansonsten kann der Client natürlich auch noch Einfluss darauf nehmen, wie der Browser bestimmte Dateitypen handlen soll. Daran kannst du dann aber Serverseitig nix groß machen.


----------



## hans-sonny (29. Nov 2014)

ich setz im servlet keinen 

das servlet wird von einer jsp aufgerufen .

wie müsste ich den header korrekt setzen? und wenn im servlet oder in der jsp?


----------



## stg (29. Nov 2014)

Du musst natürlich den HTTP header vom response, welchen du sendest, setzen. Woher der request kommt ist doch wurscht.


----------



## CptSocket (30. Nov 2014)

Hallo Sonny

Schau mal da:
java - How to download attachment file from JSP - Stack Overflow


Freundliche Grüsse
CptSocket


----------



## stg (30. Nov 2014)

Und was ist daran jetzt neu? Da steht genau das gleiche drin, was ich auch schon geschrieben habe.


----------



## hans-sonny (30. Nov 2014)

läuft danke für den tip an euch beide


----------

