I have a "variable" that users can modify in a JSP/Struts application that must be persisted across that entire web application's session. They may navigate away from the page where it is set and viewed (still staying in the application), and when they come come back the value they last set for that variable should still be present.
The obvious choice would be to store it as a session attribute. And that's what I would have done a few years ago. But Internet Explorer 8 and higher cause a web app user to have one session for all browsers that are open to the same site. In other words, if a user opens my application in a browser, then opens it a second time in another browser, they share a single session. I presume they are sharing the cookies that represent that session. The result is if they change the value in one browser's session, that value will then be changed in the other browser as well.
My users will run the web app multiple times on a single workstation, and I need for them to be able to set different values for the above mentioned variable in their different browser windows (or even tabs), and have the different values persist for that browser (or tab) lifetime, but not affect any other open browsers (or tabs) to the same application.
So, as far as I can tell using session attributes is out of the question. (Well there is the IE -nomerge option, but there is no way to force the users to launch IE using that option).
I am hoping I am not the first to deal with this issue, and someone out there has solved it elegantly, and that person reads this post and responds.