# Unterschied zwischen HttpSession und Stateful Session Bean



## JavaEEDeveloper (18. Sep 2012)

Hallo,
was ist der Unterschied zwischen der Session auf dem Web-Tier (HttpSession) und der auf dem Buissines-Tier (Stateful Session Bean)?

Werden beide Session gleichzeitig erzeugt?
Welchen SessionContext soll ich verwenden, um die Userdaten zu speichern?

Vielen Dank im Voraus


----------



## F.S.WhiTeY (18. Sep 2012)

Falscher Fehler, hab mich gerade ein wenig dolle vertan. Darum der Edit. Ich mache den Quatsch hier mal weg und poste gleich mal was vernümpftiges. Ich glaub ich war gerade im falschen Film .-.


----------



## F.S.WhiTeY (18. Sep 2012)

> was ist der Unterschied zwischen der Session auf dem Web-Tier (HttpSession) und der auf dem Buissines-Tier (Stateful Session Bean)?



Die eine Session gehört zum Servlet Context, die Andere wird in deinem Applikations-Context gehalten. Beide bilden aber fast das gleiche ab.  



> Werden beide Session gleichzeitig erzeugt?



nicht 100% gleichzeitig aber fast gleichzeitig, sozusagen nacheinander. 



> Welchen SessionContext soll ich verwenden, um die Userdaten zu speichern?



Wenn du mit CDI oder JSF-ManagedBeans arbeitest, immer die Bean denn mit der kannst du arbeiten. Die HttpSession sollte nur in Servlets genutzt werden.

Bean lassen sich einfacher injecten und sind innerhalb eines Java EE Contextes allgemein leichter zu erreichen.


----------



## FArt (24. Sep 2012)

Beide Sessions haben einen Lifecycle, aber einen unterschiedlichen. Die HTTPSession wird vom Container erzeugt, ein SFSB muss explizit erzeugt werden. Beide können über ihren Lifecycle hinweg über mehrere Calls Status halten. Sonst haben sie nichts gemeinsam.

Was du wie verwenden solltest, kann man nicht pauschal beantworten. Das hängt von deinem Design und deinen Bedürfnissen ab. Allgmein kann man sagen: Status, der die Webschicht betrifft, gehört in die HTTP Session. Status, der die Businesslogik betrifft eher in ein SFSB.
Dennoch würde ich versuchen, auf SFSB weitestgehend zu verzichten. Eine Applikation ohne SFSB lässt sich bei Bedarf leichter skalieren.


----------

