Struts2 chiude "InputStream" dopo aver ottenuto il risultato?
-
27-10-2019 - |
Domanda
Ho un'azione in struts 2
dove apre un FileInputStream
, legge un'immagine e la mostra in un jsp.
La domanda è che quando struts ha finito di ottenere l'immagine, si prenderà automaticamente cura del FileInputStream
e del close()
o il flusso verrà lasciato open
?
Soluzione
Struts2 si occuperà di chiudere il flusso di input una volta che avrà svolto il lavoro per te.
Ecco il link al codice sorgente e puoi benissimo vedere che è stato fatto attenzione a chiudere lo stream.
Struts2 StreamResult Codice sorgente
Ecco lo snippet di codice dallo stesso:
finally {
if (inputStream != null) inputStream.close();
if (oOutput != null) oOutput.close();
}
La speranza ti darà un'idea chiara di come stanno andando le cose.
Altri suggerimenti
Il risultato chiuderà il flusso di input;tutto ciò che fa l'azione è fornire il flusso.Il codice non ha più il controllo del flusso di input una volta restituita l'azione.
Il codice pertinente è in org.apache.struts2.dispatcher.StreamResult:doExecute
.