Do Struts2 fermer la « InputStream » après avoir obtenu le résultat?
-
27-10-2019 - |
Question
J'ai une action struts 2
où il ouvre un FileInputStream
, lit une image et l'affiche dans une jsp.
La question est que lorsque jambes de force est terminé à obtenir l'image, cela prendra automatiquement en charge la FileInputStream
et close()
ou le flux est laissé open
?
La solution
Struts2 prendra soin de fermer le flux d'entrée une fois qu'il a fait le travail pour vous.
Voici le lien vers le code source et vous pouvez très bien voir qu'il a été pris soin de fermer le flux.
Struts2 StreamResult code source
Voici l'extrait de code du même:
finally {
if (inputStream != null) inputStream.close();
if (oOutput != null) oOutput.close();
}
L'espoir vous donnera idée claire comment les choses vont en cours.
Autres conseils
Le résultat sera fermer le flux d'entrée; l'action est de fournir ne le flux. Votre code n'a plus le contrôle du flux d'entrée une fois que les retours d'action.
Code pertinent est org.apache.struts2.dispatcher.StreamResult:doExecute
.