Brak wyczucia: jakie scope używać dla ManagedBeans w JSF

0

Witam,
Ostatnie poznaje JSF. Rozumiem znaczenie sesji HTTP: umożliwia utrzymanie stanu w bezstanowym protokole internetowym HTTP, potrzebnego np. po zalogowania uzytkownika na stronie albo w przeplywie (webflow).

Jednak dopiero zaczynam pisac aplikacje internetowe. I nie zawsze wiem kiedy mam wybierac session scope dla ManagedBean, a kiedy RequestScope.

Moje pytania sa nastepujace:

  1. W jakim przypadku request scope bedzie dobrym pomyslem, a session scope bedzie jednoznacznie zlym pomyslem? Rozumiem, ze jesli czas zycia danego modelu ma byc ograniczony do jednego wywolania HTTP. Ale przydalby sie jakis zyciowy przyklad.

Wydaje mi sie, ze request scope jest dobrym pomyslem jesli zalogowanie ma dzialac caly czas (nie ograniczam trwania sesji np. do 300 sekund).

Session scope uzywam, gdy chce cos zapamietac np. po wyjsciu z widoku.

  1. Zalozmy, ze tworze aplikacje, ktora jest calkiem zabezpieczona haslem (wszystko dostepne po zalogowaniu). Czy ustawienie session-scope na session dla wszystkich widokow dostepnym po zalogowaniu to raczej dobry pomysl (chyba ze mam powod, aby dany obiekt w modelu nie mial wlasnej pamieci / stanu)?

  2. Gdzie moge poczytac kiedy wybierac jaki scope.

Pozdrawiam,

0
  1. Scope request: jeśli na przykład pobierasz jakieś dane przy wejściu do jakiegoś widoku do jakiego beana i chcesz żeby za każdym odświeżeniem dane były najbardziej aktualne jak się da. Poza tym request wszędzie tam gdzie nie potrzebujesz przechowywać żadnego stanu po prostu :)
  2. Nie bardzo rozumiem. Przecież scope jest dla Beana i bean autentykacyjny będzie session scope. Co ty tam byś chciał z widokami robić?
  3. A sprawdzałeś w dokumentacji (specyfikacji) JSF (i dlaczego nie?)?
0

Co prawda nie czytalem dokumentacji, ale znalazlem inne zrodla. Powiedzmy, ze rozumiem, ale jedyne co mi moze pomoc to wiecej praktyki.

Dzieki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1