2012-07-06 67 views
2

有沒有什麼方法可以爲給定的會話找到以前的HttpRequest?如何殺死HttpServlet中的用戶會話的以前的HttpRequest

Web客戶端向長時間運行的Web服務發送請求。當此服務正在運行時,客戶端發送另一個請求。我想找到第一個請求併發送一個停止信號。

背景: 我有一個Web服務,需要2-4秒來處理。該servlet託管在Tomcat容器中,並使用OSGi訪問另一個插件中的主處理器。

請求來自另一個網站,允許用戶一次提出10個請求。在用戶等待時,他們可能會進行另一次頁面更改,以便啓動另外10個Web請求。我需要一種方法來查找以前的請求。然後,我會找到一種方法將停止信號發送到長時間運行的進程,這將允許原始HttpRequest以一些合適的錯誤代碼結束。

也許另一種看待這個問題的方式是說:如果一個客戶端發出一系列重疊請求,那麼我們只想服務最後一個請求並儘快取消先前的請求。

+0

謝謝已經回答的人。對不起,我可能暫時沒有機會驗證你的答案。 – Bryan 2012-07-22 23:20:09

回答

0

我不認爲HttpSession給你你正在尋找什麼,但我會建議做一些對象,你的請求可以定期檢查,看看他們是否是「最新」的請求。如果他們不再是最新的請求,那麼他們可以立即停止並返回。

0

您可以將先前的請求作業任務保留在會話中。並且在下一個並行請求中,您可以獲得較早的請求作業並採取所需的操作。