Web アプリケーションのセッション全体で永続化する必要がある JSP/Struts アプリケーションでユーザーが変更できる「変数」があります。変数が設定および表示された (アプリケーションにとどまっている) ページから離れて移動する可能性があり、戻ってきたときに、その変数に最後に設定した値がまだ存在している必要があります。
明らかな選択は、それをセッション属性として保存することです。そして、それは私が数年前にやったであろうことです。ただし、Internet Explorer 8 以降では、Web アプリのユーザーは、同じサイトに対して開いているすべてのブラウザーに対して 1 つのセッションを持つことになります。つまり、ユーザーが私のアプリケーションをブラウザーで開き、別のブラウザーでもう一度開くと、1 つのセッションが共有されます。そのセッションを表す Cookie を共有していると思います。その結果、あるブラウザのセッションで値を変更すると、その値は他のブラウザでも変更されます。
私のユーザーは、1 つのワークステーションで Web アプリを複数回実行します。異なるブラウザー ウィンドウ (またはタブ) で上記の変数に異なる値を設定し、そのために異なる値を保持できるようにする必要があります。ブラウザー (またはタブ) の有効期間を制限しますが、同じアプリケーションに対して開いている他のブラウザー (またはタブ) には影響しません。
したがって、私が知る限り、セッション属性を使用することは問題外です。(まあ、IE -nomerge オプションがありますが、ユーザーにそのオプションを使用して IE を強制的に起動させる方法はありません)。
この問題に対処したのは私が最初ではないことを願っています。誰かがエレガントに解決し、その人がこの投稿を読んで返信します。