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