【发布时间】:2017-02-10 03:47:53
【问题描述】:
我正在实现一个 Web 应用程序,它对新用户来说有点未经身份验证,它将被另一个 Web 应用程序使用,即最终用户不直接使用,但父 Web 应用程序不在我的控制范围内。因此,通过我的网络应用,新用户可以通过提供他的个人联系方式来购买比他想要的产品,我正在为其实施会话管理。
所以我已经通过以下方式实现了这一点,并希望现在您的建议使其变得更好。
1)。一旦父 Web 应用程序重定向到我的 Web 应用程序 url,我将调用两个 servlet(由于框架结构)。
第一个 servlet,如果有的话,将从 HttpSession 中删除 myUser 的旧对象。(因为我的应用程序中没有任何注销,并且读到 onbeforeunload 不可靠),它还会从Threadlocal(我已经实现了分别维护每个线程的状态)。
之后,第二个 servlet 创建新对象并将其与 HttpSession 绑定,并使用该会话保存用户的间歇性数据以用于相关服务。
而且我知道 servlet 的每个服务方法都在单独的线程中运行,所以希望一个会话不会干扰另一个会话,因为这将是每个浏览器一个,由于会话 ID 的唯一性,如果我是,请纠正我错了
【问题讨论】:
-
一般来说,我会说避免所有这些并使用 Spring OAuth2。
-
@chrylis 谢谢,但由于遗留问题,我不能这样做。
-
你说你正在写一个新的应用程序。
-
是的,但我必须遵循已成为父应用程序一部分的相同技术
-
你好吗
invoking the two servlets?线程很大程度上取决于您调用的方式。
标签: java session servlets httpsession session-management