对于试点项目,我想实现自定义和分布式用户会话。它似乎是ThreadLocal
绑定的最佳位置,由请求过滤器精心管理。
此类用户会话将在Servlet和非Servlet环境中可用。在Servlet环境中,它应独立于是否存在任何基础javax.servlet.http.HttpSession
(即,不允许创建或使用HttpSession
个对象。)
不幸的是,我无法找到有关如何在为异步操作配置的Servlet 3.0 +环境中处理此场景的详尽信息。我理解(至少,我认为......)javax.servlet.Filter
应该向当前javax.servlet.AsyncListener
添加javax.servlet.AsyncContext
,但是一些专用资源/真实示例会非常有用(主要用于显示一些细微差别,我肯定会想念。)
我很清楚ThreadLocal
陷阱,但它们的实际好处(在这种情况下)使我愿意找到在这种异步架构中实现它们的正确方法(另外,将会话引用传递给内部图层不是选项。)