我們在我們的應用服務器的tomcat上運行。關閉輸出流後,servlet請求會發生什麼?
我們有一個生成PDF文件,並返回到瀏覽器的servlet。然後刪除臨時PDF文件。
問題是我們在刪除時遇到了一些時間上的困難。我們團隊中的某個人決定在刪除文件之前等待20秒,因此他們使用Thread.sleep(20000)。
有趣的是,他們關閉輸出流,等待20秒,然後再刪除文件和退出的doGet()。
我的問題是:由於輸出流的響應關閉時,它,是否有任何性能問題在20秒鐘等待立即返回給瀏覽器的等待過嗎?例如,它是否捆綁了一個網絡連接或一些這樣的?
不是tomcat自動刪除臨時文件嗎?你有什麼時間困難?一旦pdf由servlet寫入並且流關閉,文件可以立即被刪除。 – Thihara
爲什麼您需要首先將PDF存儲在磁盤文件系統中?爲什麼不直接寫入'response.getOutputStream()'而不是'FileOutputStream()'?請注意,如果文件保持打開狀態,則無法刪除該文件。在將PDF寫入磁盤之後,您可能忘記了'FileOutputStream#close()'。 – BalusC
那麼,服務器上的一個工作線程就被佔用了20秒。 你可以使用螢火蟲尋找一個連接的網絡連接 – Ben