[英]Is it dangerous to store HttpServletRequest objects in a queue for later processing?
所以,我處在一種情況,我想排隊一堆HttpServletRequest對象進行異步處理。 暫時擱置這是否是一個明智的策略 - 實際上就是在這種情況下,因為我正在嘗試改造一個糟糕的遺留系統 - 這是一件危險的事情嗎?
我在這里關心的是HttpServletRequest對象是否保留任何有價值的資源或打開連接會導致死鎖或資源爭用問題。
這里假設我正在實現一個帶有doPost()方法的簡單servlet,該方法接受HttpServletRequest對象,將其放入LinkedBlockingQueue,然后向用戶發送某種股票響應(如301重定向到確認頁面)。
謝謝!
我已經看到了碼頭的內部,我可以向你保證,將這個結構從當前的請求中移出會非常非常糟糕。 有各種當前連接狀態,不能在當前請求之外使用。 我不禁想到,幾乎任何servlet容器都是如此。
聽起來您正計划響應原始請求,然后進行一些額外的處理。 我建議將原始請求中所需的信息復制到單獨的數據結構中以進行離線處理。 此外,如果您正在處理需要HttpServeletRequest的代碼,您始終可以使用代碼所需的數據位來模擬您自己的代碼。
我做了一個非常相似的事情,我遇到的一個問題是,Jetty似乎在某些時候清理了HttpServletRequest
中的內容,讓你從某些getXYZ
方法中獲得null
返回值,甚至為其他人拋出NPE。
所以,是的,這很危險。
我現在在doPost
和doGet
復制我需要的東西,完全忘記了這個實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.