【发布时间】:2015-06-10 08:02:40
【问题描述】:
我想在调用 session.setAttribute 和 session.getAttribute 时完成一项任务,我将捕获该事件并为键附加一些唯一值。
例如:session.setAttribute("userId","123") I will catch this event and append session.setAttribute("userId"+Guid,"123")
对于session.getAttribute("userId") will catch this event and append session.getAttribute("userId"+Guid) 并相应地返回响应。
有什么办法可以做到这一点,基本上我这样做是因为我想为使用相同浏览器选项卡的多个用户使用相同的会话。
因此,我将在特定于选项卡的 cookie 中拥有一些唯一值,并将在每个请求中获取它,并将使用 session.setAttribute("userId"+Uniqueid from Cookie which I have stored) 获取用户数据,对于 getAttribute 也是如此。
我不想用户 url 重写。
【问题讨论】:
-
@balusc 我看到了 HttpSessionBindingListener 的示例,请帮助我是否需要在 web.xml 中进行配置才能调用 valueBound 和 ValueUbound 方法。即使调用 session.getAttribute() 时也会调用此方法。因为我没有调用此方法。
-
@BalusC 我已经在我的类中实现了 HttpSessionBindingListener,请帮助我会话对象将如何实现它。如何通知会话有关 HttpSessionBindingListener 的实现
-
@BalusC 当我喜欢这个 session.setAttribute("key",new MyHttpSessionBindingListener()) 我接到一个电话,但我希望每个 session.setAttribute 和 getAttribute 我都应该接到一个电话.例如 session.setAttribute("userid",'123456") 和 session.getAttribute("userid") 我应该接到电话。
-
@BalusC 那么我必须使用 HttpSessionAttributeListener 吗?我说得对吗?你的意思是这样说。