Jak mogę zapisać stan dla pojedynczej karty / okna przeglądarki?

Opracowuję pojedynczą stronę aplikacji internetowej jQuery & Backbone.js. Backend to serwer aplikacji JBoss 6.

Do tej pory mieliśmy następującą strukturę:

Istnieje tylko jeden serwlet (kontroler frontowy). Każde żądanie klienta JavaScript przechodzi tutaj.W serwletu - na pierwsze żądanie pewnego klienta JS - patrzę p na stanowy komponent bean sesji. Dla kolejnych żądań tego klienta przechowuję wynik wyszukiwania w kontenerze sesji HTTP. Tak więc każdy klient JS ma dokładnie jeden stanowy komponent bean sesji. To połączenie jest przechowywane przez plik cookie sesji.

Teraz mam dodatkowe wymaganie:

Gdy użytkownik ma dwie karty przeglądarki (w jednej przeglądarce), powinny one mieć dwie pojedyncze instancje aplikacji internetowej na każdej karcie przeglądarki. Z tego powodu mam problem z plikami cookie sesji, ponieważ ten plik cookie sesji jest przeznaczony dla wszystkich kart przeglądarki.

Muszę zmienić strukturę, aby:

Serwlet musi wygenerować nowy identyfikator sesji dla pierwszego żądania określonego klienta JS. Ten identyfikator sesji jest przekazywany klientowi.Przy każdym POST do zaplecza klient JS musi wysłać ten identyfikator sesji.

Moje pytanie brzmi:

Do tej pory zapisałem wynik wyszukiwania w obiekcie sesji HTTP i nie musiałem myśleć o generowaniu identyfikatora sesji. Ale teraz muszę to przechowywać gdzieś indziej, gdzie?

Czy ktoś doświadczył tego rodzaju ustawień i może mi pomóc?

Aktualizacja:
Dziękuję BalusC za to bardzo ciekawe podejście.
Kiedy dobrze cię zrozumiałem, oznacza to:

Wszyscy indywidualni klienci JS kartjeden przeglądarka współdzieli jeden obiekt sesji HTTP. W tym obiekcie sesji HTTP każda karta ma swój własny punkt wejścia. To brzmi naprawdę dobrze. Więc nadal mogę korzystać z całej infrastruktury sesji HTTP i nie muszę wymyślać na nowo koła.

questionAnswers(2)

yourAnswerToTheQuestion