如何确保会话属性的线程安全性

时间:2014-09-02 14:17:23

标签: java jsp session java-ee servlets

我正在编写j2ee代码,但我遇到了会话属性的问题。

关于确保在servlet中设置和访问的会话属性的线程安全性? 因为,我知道我们不能实现“SingleThreadModel”,因为这在java中已被弃用,而且我们也无法同步doXXXX()方法。 我试图使用“SingleThreadModel”,但它没有用。 那我该怎样才能确保呢? 我可以同步会话对象吗?

请告诉我,如何解决它。

1 个答案:

答案 0 :(得分:0)

您需要一个会话范围的互斥锁。即在会话中同步,或者更好地在会话中使用特定于用例的对象。

您应该保持互斥锁的范围尽可能小,因为您可能会导致序列化您的请求。我在我的一个项目上尝试了一次,在那里我使用了Spring的RequestMappingHandlerAdapter.setSynchronizeOnSession(),它只是在会话中为每个请求进行同步。这对显示渲染图像列表的页面产生了重大影响。我可以看着顺序出现这些图像。