# JSF: Beans in Session oder Request?



## Fats (7. Aug 2008)

Hallo zusammen!

Wenn ich in der faces-config meine managed-beans definiere, bindet man die besser an die Session oder an den request? Meine mich dunkel zu erinnern, irgendwo gelesen zu haben, daß man besser so wenig wie möglich an die Session binden solle ... ist die Erinnerung da richtig?

Wenn ja, warum oder warum nicht?

Viele Grüße
Fats


----------



## HLX (7. Aug 2008)

Das hängt grundsätzlich davon ab, wofür du die Bean verwendest. Möchtest du, dass eine Bean-Instanz nach einem Aufruf definitiv nicht mehr zur Verfügung stehen soll, dann ist der Scope auf Request zu setzen. Falls du einen Anwendungszustand über mehrere Requests hinweg benötigst, ist der Scope auf Session zu setzen. Sinnvolle Beispiele hierfür sind ein Warenkorb bei einem Onlineshop oder ein Editierfenster, dass beim nächsten Aufruf den gleichen Zustand haben soll, wie beim letzten Aufruf.


----------



## Fats (12. Aug 2008)

Das wäre jetzt auch so mein erster Gedanke dazu gewesen. Je nach dem was man braucht, den einen oder anderen Scope zu nehmen. Aber ich hatte die Info, so gut wie nichts / so wenig wie möglich in die Session zu hängen, auch ganz pauschal gelesen / gehört. Da wurde meiner Erinnerung nach überhaupt nicht differenziert.  Daher dachte ich, es gibt einen sinnvollen allgemeinen Grund dies zu tun.

Viele Grüße
Fats


----------



## HLX (13. Aug 2008)

Nein, es gibt keinen allgemeinen Grund. Man sollte lediglich nicht dazu neigen den Session Scope aus Bequemlichkeit zu verwenden. Er sollte nur dort verwendet werden wo er Sinn macht. Daten die im Session Scope gehalten werden sind, liegen halt während der gesamten Sitzung im Speicher. Die Sitzung läuft u.U. ein Weilchen: Der Time-Out vom Tomcat liegt per Default bei 15 oder 20 Minuten. Wenn in dieser Zeit 100.000 Benutzer die Anwendung verwenden, liegen auch entsprechend Beans im Speicher. 

Die Verweildauer der Session-Daten auf dem Server stellt natürlich auch ein gewisses Sicherheitsrisiko dar. Der Server ist schließlich angreifbar. Ein Grund warum Banken ihre Kunden immer darum bitten sich nach dem Internet Banking brav abzumelden - damit die Session-Daten schnell entfernt werden.


----------



## Fats (13. Aug 2008)

Ok, danke Dir! 

Viele Grüße
Fats


----------

