java - 如何保证 session 属性的线程安全

标签 java jsp session jakarta-ee servlets

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

关于确保在 servlet 中设置和访问的 session 属性的线程安全? 因为,我知道我们无法实现“SingleThreadModel”,因为这在 java 中已被弃用,而且我们无法同步 doXXXX() 方法。 我尝试使用“SingleThreadModel”,但它不起作用。 那我该如何保证呢? 我可以同步 session 对象吗?

请告诉我如何修复它。

最佳答案

您需要一个 session 范围的互斥体。 IE。在 session 上同步,或者更好地在 session 中同步用例特定对象。

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

关于java - 如何保证 session 属性的线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25625641/

相关文章:

java - 尝试压缩位图时出现 OutOfMemoryError

jsp - 使用 jSTL 动态加载下拉列表

javascript - 如何从另一个jsp页面刷新一个jsp页面?

java - servlet完成后显示HTML页面

PHP Javascript?当用户关闭页面或浏览器时做一些事情

java - 更新内容时重新创建 JTable

java - 在 SOAP 服务项目内创建文件

java - 如何将 mongoclient 注入(inject)我的 POST 服务

php - Redis 与 native session

session - 使用 ENDSESSION_CLOSEAPP 和 wParam == FALSE 对 WM_ENDSESSION 的正确响应是什么?