我在struts 2
中有一个操作,它会打开FileInputStream
,读取图像并在jsp中显示。
问题是,当struts完成获取图片时,它是否会自动处理FileInputStream
和close()
,或者流保留open
?
答案 0 :(得分:2)
结果将关闭输入流;所有动作都是提供流。一旦操作返回,您的代码就不再能控制输入流。
相关代码位于org.apache.struts2.dispatcher.StreamResult:doExecute
。
答案 1 :(得分:1)
Struts2将在完成工作后关闭输入流。
以下是源代码的链接,您可以很清楚地看到它已经关闭了流。
Struts2 StreamResult Source Code
以下是相同的代码段:
finally {
if (inputStream != null) inputStream.close();
if (oOutput != null) oOutput.close();
}
希望能让你清楚地了解事情的进展情况。