Struts2 закрывает InputStream после получения результата? - PullRequest
3 голосов
/ 02 декабря 2011

У меня есть действие в struts 2, где он открывает FileInputStream, читает изображение и показывает его в jsp.

Вопрос в том, что, когда Struts завершит получение изображения, оно автоматически позаботится о FileInputStream и close() it или поток останется open?

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

Результат закроет входной поток; все, что делает, это обеспечивает поток. Ваш код больше не контролирует поток ввода после возврата действия.

Соответствующий код в org.apache.struts2.dispatcher.StreamResult:doExecute.

1 голос
/ 02 декабря 2011

Struts2 позаботится о закрытии входного потока после того, как он выполнит работу за вас.

Вот ссылка на исходный код, и вы очень хорошо видите, что он позаботился о том, чтобы закрыть поток.

Исходный код Struts2 StreamResult

Вот фрагмент кода из того же:

 finally {

           if (inputStream != null) inputStream.close();
           if (oOutput != null) oOutput.close();
        }

Надежда даст вам четкое представление о том, как идут дела.

...