Sessions basieren in der Regel auf Cookies. Das funktionieren so, dass der Browser automatisch für deine Seite (den Host) eine Session-ID verwaltet und die immer bei jedem Request an den Host als HTTP-Header mit schickt. Der Browser verwaltet aber nur eine Session-ID je Host, also kannst du keine zwei Sessions von einem Browser aus haben. Soweit so bekannt.
Was du machen willst ist vermutlich, die Session-IDs anders zu verwalten. Also zum Beispiel eine Session-ID pro Tab.
Wenn du (Browser-übergreifend) mehrere "Sessions" erlauben möchtest, sind Cookies als Session-Diskriminatoren also ungeeignet.
Du musst dem Server auf anderem Wege eine Session-ID zukommen lassen. Das geht zum Beispiel per HTTP-Header (wie bei den Cookies). Mit GWT kannst du AFAIR bei Requests eigene Header setzen. Wenn du das konsequent machst, kannst du damit eigene Session-IDs realisieren.
Eine andere Möglichkeit ist es, die Session-ID per Parameter zu übergeben. Ist in GWT auch einfach.
Probleme gibt es dann auf der Serverseite. Tomcat "schenkt" dir ja einen bequemen, sorgenfreien Session-Mechanismus. Der basiert aber auf der Session-ID aus dem HTTP-Header (der von dem Cookie), den kannst du also nicht verwenden (ohne böse zu hacken). Das gilt allerdings nur für den Standard-Session-Manager. Du kannst bei Tomcat nämlich auch einen eigenen Session-Manager erstellen und konfigurieren. Der könnte dann deine HTTP-Header auswerten oder andere Request-Parameter.
Um das bequeme Session-Management weiter zu verwenden und volle Kompatibilität mit anderen Web-Frameworks zu erreichen wäre das wohl der beste Weg. Damit bindest du dich aber an Tomcat oder irgendeine Runtime, bei der du eigene Session-Manager erstellen kannst. Nicht schön.
Fazit: Schöne Möglichkeiten für mehrere Sessions aus einem Browser per Cookies gibt es nicht. Dafür war das Session-per-Cookie-Konzept nie gedacht (Problem liegt an den Cookies). Es gibt einige Frameworks, die das eigenständig zu realisieren versuchen. Lustig ist aber, dass Tomcat so einen Framework aber eigentlich schon eingebaut hat - siehe den folgenden Tipp.
Tipp: Versuch mal, bei deinem Tomcat Session-Handling die Nutzung von Cookies zu deaktivieren. Damit zwingst du dich dazu, das Session-Handling per Parameter, also per URL-Rewriting zu realisieren.
Radikal, aber wirksam. Du musst dazu die Session-ID an deinen GWT-Client übertragen und dort bei jedem Aufruf als Parameter anhängen.
Dazu den kurzen Beitrag hier:
http://www.oreillynet.com/onjava/blog/2007/02/gwt_tip_no_cookies_support.html