flush close

response.getOutputStream().flush();
response.getOutputStream().close();

之前看網上材料說,close方法會自動調用flush方法,我看其它人代碼,都是flush後再進行close,於是各種搜索,發現stackoverflow說這是編程習慣,感覺不對,又繼續搜,發現有的close方法會flush,有的不會。

這時候問題來了,發現OutputStream中從close方法體是空的,ServletOutputStream繼承了OutputStream,並沒有重寫close方法。

這個時候debug了一下,發現response.getOutputStream().close()方法走的是CoyoteOutputStream類中的close,該類是tomcat的類,繼承了ServletOutputStream類,看該類的close方法,該方法調用flush()方法。

response.getOutputStream().flush();

response.getOutputStream().close();

這樣寫比較穩妥。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章