2014-09-02 65 views
1

我正在寫j2ee代碼,但我面臨會話屬性的問題。如何確保會話屬性的線程安全

關於確保正在servlet中設置和訪問的會話屬性的線程安全性? 因爲我知道我們不能實現「SingleThreadModel」,因爲這在java中已被棄用,我們也無法同步doXXXX()方法。 我試圖使用「SingleThreadModel」,但它沒有奏效。 那麼我如何確保它? 我可以同步會話對象嗎?

請告訴我,如何解決它。

回答

0

您需要一個會話範圍的互斥鎖。即在會話上進行同步,或者更好地在會話中使用特定於用例的對象。

您應該保持互斥體的範圍儘可能小,因爲您可能會導致序列化您的請求。我在我的一個項目上嘗試了一次,在那裏我使用了Spring的RequestMappingHandlerAdapter.setSynchronizeOnSession(),它只是在每個請求的會話上同步。這對顯示渲染圖像列表的頁面有顯着的影響。我可以看着順序出現這些圖像。

+0

謝謝@Markus Malkusch,它的工作。 – 2014-09-02 14:44:09