Aplikacje wielowarstwowe - Instytut Informatyki Teoretycznej i
Transkrypt
Aplikacje wielowarstwowe - Instytut Informatyki Teoretycznej i
Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Aplikacje wielowarstwowe dr inż. Grzegorz Michalski Instytut Informatyki Teoretycznej i Stosowanej 01 marca 2016 dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Dane kontaktowe dr inż. Grzegorz Michalski [email protected] http://icis.pcz.pl/~michalski pokój 204, IITiS (II pietro) ˛ konsultacje: Dostepne ˛ na stronie internetowej. Komunikacja e-mail: prefix [AW2016] dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka Warstwa webowa dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka Warstwa webowa Warstwa serwerowa dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka Warstwa webowa Warstwa serwerowa Wymiana danych pomiedzy ˛ warstwami dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka aplikacje klienckie Warstwa webowa Warstwa serwerowa Wymiana danych pomiedzy ˛ warstwami dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka aplikacje klienckie aplety Warstwa webowa Warstwa serwerowa Wymiana danych pomiedzy ˛ warstwami dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka aplikacje klienckie aplety Warstwa webowa Java Servlet Warstwa serwerowa Wymiana danych pomiedzy ˛ warstwami dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka aplikacje klienckie aplety Warstwa webowa Java Servlet Java Server Pages Warstwa serwerowa Wymiana danych pomiedzy ˛ warstwami dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka aplikacje klienckie aplety Warstwa webowa Java Servlet Java Server Pages Java Server Faces Warstwa serwerowa Wymiana danych pomiedzy ˛ warstwami dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka aplikacje klienckie aplety Warstwa webowa Java Servlet Java Server Pages Java Server Faces Warstwa serwerowa Enterprise Java Beans Wymiana danych pomiedzy ˛ warstwami dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Wielowarstwowość? Model wielowarstwowy: Warstwa kliencka aplikacje klienckie aplety Warstwa webowa Java Servlet Java Server Pages Java Server Faces Warstwa serwerowa Enterprise Java Beans Wymiana danych pomiedzy ˛ warstwami Frameworki, np: Spring, Play, ... dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Serwery aplikacji Serwery aplikacji JEE Serwer umożliwiajacy ˛ uruchamianie oraz udostepnianie ˛ aplikacji zbudowanych w architekturze JEE. Przykładowe serwery aplikacji: JBoss Glassfish WebLogic Apache Tomcat – kontener aplikacji dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Servlets Klasa umożliwiajaca ˛ rozszerzenie funkcjonalności serwera aplikacji. Servlet może zostać wygenerowany automatycznie na podstawie plików JSP. Kompilowane przy pierwszym żadaniu. ˛ dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Servlets Klasa umożliwiajaca ˛ rozszerzenie funkcjonalności serwera aplikacji. Servlet może zostać wygenerowany automatycznie na podstawie plików JSP. Kompilowane przy pierwszym żadaniu. ˛ Cykl życia: dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Servlets Klasa umożliwiajaca ˛ rozszerzenie funkcjonalności serwera aplikacji. Servlet może zostać wygenerowany automatycznie na podstawie plików JSP. Kompilowane przy pierwszym żadaniu. ˛ Cykl życia: web context javax.servlet.ServletContext dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Servlets Klasa umożliwiajaca ˛ rozszerzenie funkcjonalności serwera aplikacji. Servlet może zostać wygenerowany automatycznie na podstawie plików JSP. Kompilowane przy pierwszym żadaniu. ˛ Cykl życia: web context javax.servlet.ServletContext session javax.servlet.http.HttpSession dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Servlets Klasa umożliwiajaca ˛ rozszerzenie funkcjonalności serwera aplikacji. Servlet może zostać wygenerowany automatycznie na podstawie plików JSP. Kompilowane przy pierwszym żadaniu. ˛ Cykl życia: web context javax.servlet.ServletContext session javax.servlet.http.HttpSession request javax.servlet.HttpServletRequest dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Servlets Klasa umożliwiajaca ˛ rozszerzenie funkcjonalności serwera aplikacji. Servlet może zostać wygenerowany automatycznie na podstawie plików JSP. Kompilowane przy pierwszym żadaniu. ˛ Cykl życia: web context javax.servlet.ServletContext session javax.servlet.http.HttpSession request javax.servlet.HttpServletRequest page javax.servlet.jsp.PageContext dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Server Page JSP jest to technologia serwerowa analogiczna do popularnego jezyka ˛ PHP. JSP jest kompilowane w momencie pierwszego żadania ˛ wywołania. Technologia ta jest cz˛eścia˛ platformy JEE. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Server Page JSP jest to technologia serwerowa analogiczna do popularnego jezyka ˛ PHP. JSP jest kompilowane w momencie pierwszego żadania ˛ wywołania. Technologia ta jest cz˛eścia˛ platformy JEE. Przykłady osadzania JSP w kodzie HTML: <% ... %> dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Server Page JSP jest to technologia serwerowa analogiczna do popularnego jezyka ˛ PHP. JSP jest kompilowane w momencie pierwszego żadania ˛ wywołania. Technologia ta jest cz˛eścia˛ platformy JEE. Przykłady osadzania JSP w kodzie HTML: <% ... %> <jsp:element> ... </jsp:element> dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Server Page JSP jest to technologia serwerowa analogiczna do popularnego jezyka ˛ PHP. JSP jest kompilowane w momencie pierwszego żadania ˛ wywołania. Technologia ta jest cz˛eścia˛ platformy JEE. Przykłady osadzania JSP w kodzie HTML: <% ... %> <jsp:element> ... </jsp:element> <% ... %> dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Server Page JSP jest to technologia serwerowa analogiczna do popularnego jezyka ˛ PHP. JSP jest kompilowane w momencie pierwszego żadania ˛ wywołania. Technologia ta jest cz˛eścia˛ platformy JEE. Przykłady osadzania JSP w kodzie HTML: <% ... %> <jsp:element> ... </jsp:element> <% ... %> <jsp:directive.nazwa_dyrektywy /> dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Server Page JSP jest to technologia serwerowa analogiczna do popularnego jezyka ˛ PHP. JSP jest kompilowane w momencie pierwszego żadania ˛ wywołania. Technologia ta jest cz˛eścia˛ platformy JEE. Przykłady osadzania JSP w kodzie HTML: <% ... %> <jsp:element> ... </jsp:element> <% ... %> <jsp:directive.nazwa_dyrektywy /> Wiecej ˛ już niedługo na zajeciach... ˛ :) dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Server Face JSF to framework umożliwiajacy ˛ szybkie „wytwarzanie” aplikacji webowych z zastosowaniem jezyka ˛ Java. Uwalnia programiste˛ od konieczności recznej ˛ implementacji obsługi elementów takich jak przykładowo nawigacja pomiedzy ˛ stronami internetowymi serwisu. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Budowa aplikacji internetowej W każdej aplikacji internetowej można wyróżnić dwie podstawowe warstwy: dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Budowa aplikacji internetowej W każdej aplikacji internetowej można wyróżnić dwie podstawowe warstwy: prezentacji dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Budowa aplikacji internetowej W każdej aplikacji internetowej można wyróżnić dwie podstawowe warstwy: prezentacji logiki biznesowej dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Budowa aplikacji internetowej W każdej aplikacji internetowej można wyróżnić dwie podstawowe warstwy: prezentacji logiki biznesowej W kontekście aplikacji uruchamianych w przegladarkach ˛ internetowych warstwa prezentacji opisywana jest za pomoca˛ HTML oraz CSS. Natomiast logika biznesowa z zastosowaniem PHP, Java, Ruby, C#, ... dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Budowa aplikacji internetowej W każdej aplikacji internetowej można wyróżnić dwie podstawowe warstwy: prezentacji logiki biznesowej W kontekście aplikacji uruchamianych w przegladarkach ˛ internetowych warstwa prezentacji opisywana jest za pomoca˛ HTML oraz CSS. Natomiast logika biznesowa z zastosowaniem PHP, Java, Ruby, C#, ... Osadzać kod logiki biznesowej w kodzie opisujacym ˛ warstwe˛ prezentacji? dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Komponenty W technologi JSF kod logiki biznesowej umieszczany jest w komponentach osadzonych na serwerze aplikacji. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Komponenty W technologi JSF kod logiki biznesowej umieszczany jest w komponentach osadzonych na serwerze aplikacji. Komponent Javy zgodnie z nomenklatura˛ nazywamy Java Bean. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Komponenty W technologi JSF kod logiki biznesowej umieszczany jest w komponentach osadzonych na serwerze aplikacji. Komponent Javy zgodnie z nomenklatura˛ nazywamy Java Bean. Komponenty udostepniaj ˛ a˛ właściwości oraz zdarzenia. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Komponenty W technologi JSF kod logiki biznesowej umieszczany jest w komponentach osadzonych na serwerze aplikacji. Komponent Javy zgodnie z nomenklatura˛ nazywamy Java Bean. Komponenty udostepniaj ˛ a˛ właściwości oraz zdarzenia. Właściwość jest to pewna wartość która˛ można modyfikować oraz odczytywać. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Komponenty W technologi JSF kod logiki biznesowej umieszczany jest w komponentach osadzonych na serwerze aplikacji. Komponent Javy zgodnie z nomenklatura˛ nazywamy Java Bean. Komponenty udostepniaj ˛ a˛ właściwości oraz zdarzenia. Właściwość jest to pewna wartość która˛ można modyfikować oraz odczytywać. Operacje na właściwościach realizowane sa˛ za pomoca˛ metod get oraz set. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Komponenty W technologi JSF kod logiki biznesowej umieszczany jest w komponentach osadzonych na serwerze aplikacji. Komponent Javy zgodnie z nomenklatura˛ nazywamy Java Bean. Komponenty udostepniaj ˛ a˛ właściwości oraz zdarzenia. Właściwość jest to pewna wartość która˛ można modyfikować oraz odczytywać. Operacje na właściwościach realizowane sa˛ za pomoca˛ metod get oraz set. Pomijanie metod set oraz get, czy to w ogóle jest możliwe? dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Przykładowy komponent Listing 1: Przykładowy komponent 1 2 3 4 5 6 7 8 9 10 public class Uzytkownik { p r i v a t e S t r i n g name ; p r i v a t e S t r i n g passwd ; public S t r i n g getName { } { r e t u r n name ; } public void setName ( S t r i n g n ) { name = n ; } public S t r i n g getPasswd ( ) { r e t u r n passwd ; } public void setPasswd ( S t r i n g p ) { passwd = p ; } } dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Beany podstawowe oraz zarzadzane ˛ Zasady dotyczace ˛ tworzenia Beanów: klasa musi posiadać konstruktor bezargumentowy. nie powinny istnieć publiczne argumenty, dostep ˛ do argumentów powinien odbywać sie˛ za pomoca˛ metod dostepowych, ˛ jeżeli klasa udostepnia ˛ metode˛ getImie klasa powinna zawierać pole imie, wywołanie JSF: #{osoba.imie} można zinterpretować jako: wywołaj metode˛ getImie na rzecz beana osoba, w przypadku atrybutów typu Boolean zamiast metody getPrawda można zastosować isPrawda. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Atrybuty beana Każdy atrybut beana jest powiazany ˛ z para˛ metod get oraz set. metoda get jest wywoływana w momencie wyświetlania formularza, a zwracana wartość jest wyświetlana użytkownikowi, metoda set jest wywoływana w momencie zatwierdzenia formularza, a wartość z elementu wejściowego jest zapisywana jako wartość powiazanego ˛ atrybutu. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Właściwości beana Aby określić nazwe˛ atrybutu z reguły wystarczy usunać ˛ słowo get lub set, a nastepnie ˛ zmienić pierwsza˛ litere˛ na mała. ˛ nazwa metody: getNazwisko nazwa argumentu: nazwisko przykład wywołania: #{osoba.nazwisko} Wyjatki: ˛ zmienne logiczne (nazwa metody dostepowej ˛ może być poprzedzona wyrazem is lub get), nazwa zmiennej zawiera kilka dużych znaków, np. getHTTP, nazwa atrybutu to HTTP, a nie hTTP. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Przykłady (1) Example Metody: getNazwisko, setNazwisko Atrybut: nazwisko JSF: <h:inputText value=”#{osoba.nazwisko}”> Example Metody: getHTTP, setHTTP Atrybut: HTTP JSF: <h:inputText value=”#{osoba.http}”> dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Przykłady (2) Example Metody: isKawaler, setKawaler Atrybut: kawaler JSF: <h:selectBooleanChceckbox value=”#{osoba.kawaler}”> Example Metody: getKawaler, setKawaler Atrybut: kawaler JSF: <h:selectBooleanChceckbox value=”#{osoba.kawaler}”> dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean A może jednak pola publiczne? Example public S t r i n g nazwisko ; 1 Example p r i v a t e S t r i n g nazwisko ; public S t r i n g getNazwisko ( ) { / ∗ . . . ∗ / } public void setNazwisko ( S t r i n g _nazwisko ) { /∗ . . . ∗/ } dr inż. Grzegorz Michalski Aplikacje wielowarstwowe 1 2 3 4 5 6 Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Dlaczego stosować metody dostepowe? ˛ Zastosowanie metod dostepowych ˛ umożliwia sprawdzenie poprawności wprowadzanych bezpośrednio danych. public void setWiek ( i n t _wiek ) { i f ( _wiek < 0 ) { /∗ . . . ∗/ } /∗ . . . ∗/ } dr inż. Grzegorz Michalski Aplikacje wielowarstwowe 1 2 3 4 5 6 7 8 Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Dlaczego stosować metody dostepowe? ˛ Zastosowanie metod dostepowych ˛ umożliwia konwersje˛ danych, bez potrzeby zmiany interfejsu. p u b l i c v o i d setTemp ( double newTemp ) { t e m p e ra t u r a = CelsToFar ( newTemp ) ; } p u b l i c v o i d setTempinFar ( double newTemp ) { t e m p e ra t u r a = newTemp ; } dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Dlaczego stosować metody dostepowe ˛ Zastosowanie metod dostepowych ˛ umożliwia działania po zmianie wartości public void setTemp(double newTemp) temperatura = newTemp; updateGraphics(); updateStatus(); Bezpośrednia modyfikacja wartości uniemożliwia odpowiednia˛ reakcje˛ na zmiany wartości wprowadzane przez użytkowników. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Beany - podsumowanie Wymagania stawiane „beanom”: brak konstruktorów, albo musi istnieć konstruktor bezargumentowy, brak publicznych atrybutów, używanie konwencji nazewniczej dla metod dostepowych: ˛ setAtr/getAtr setAtr/isAtr – dla zmiennych typu logicznego dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Managed Beans JSF autoamtycznie zarzadza ˛ beanami: tworzy instancje˛ każdego beana. Z tego powodu wystepuje ˛ potrzeba bezargumentowego konstruktora, kontroluje cykl życia beana. Zastosowana przestrzeń (session, application, request) określa czas życia beana, odpowiednio wywołuje metody dostepowe ˛ (gettery oraz settery) Deklaracja zarzadzanego ˛ beana ogranicza sie˛ do wpisania ManagedBean przed nazwa˛ klasy lub dodania odpowiedniego wpisu w pliku konfiguracyjnym. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Optymalizacja dostepu ˛ do danych Metody odpowiedzialne za pobieranie danych (getter) beana moga˛ być wywoływane wielokrotnie. W przypadku formularza co najmniej 1 raz przy wyświetlaniu formularza oraz przy wyświetlaniu wyniku. Bardzo cz˛esto operacja ta wystepuje ˛ wiecej ˛ razy. Gdzie jest wiec ˛ problem? Przetwarzanie danych z systemów baz danych. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Składowe beana zarzadzanego ˛ Managed bean powinien przeważnie zawierać trzy elementy: własności – atrybuty para metod get oraz set, wywoływane automatycznie przez JSF w momencie zatwierdzenia formularza, przed metodami obsługi zdarzeń metody obsługi zdarzeń/akcji przeważnie jedna, ale może być kilka w zależności od liczby przycisków na formularzu metoda obsługi akcji, przypisana do przycisku który został aktywowany, jest wywoływana automatycznie przez JSF pojemniki z danymi (głównie dane pobierane z bazy danych) dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Zasieg ˛ beanów Java bean można skonfigurować do działania w jednej z czterech dostepnych ˛ przestrzeni: none dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Zasieg ˛ beanów Java bean można skonfigurować do działania w jednej z czterech dostepnych ˛ przestrzeni: none request dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Zasieg ˛ beanów Java bean można skonfigurować do działania w jednej z czterech dostepnych ˛ przestrzeni: none request session dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Zasieg ˛ beanów Java bean można skonfigurować do działania w jednej z czterech dostepnych ˛ przestrzeni: none request session application dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Zasieg ˛ beanów Java bean można skonfigurować do działania w jednej z czterech dostepnych ˛ przestrzeni: none request session application Z reguły korzystamy z przestrzeni sesyjnej. Dlaczego? dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Przestrzenie (1) NoneScoped Obiekty w przestrzeni none moga˛ korzystać z innych obiektów tej przestrzeni. Nie ma możliwości wykorzystania ich na jakiejkolwiek stronie JSF. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Przestrzenie (1) NoneScoped Obiekty w przestrzeni none moga˛ korzystać z innych obiektów tej przestrzeni. Nie ma możliwości wykorzystania ich na jakiejkolwiek stronie JSF. RequestScoped Obiekty w tej przestrzeni widoczne sa˛ od momentu startu żadania ˛ do jego zakończenia. W przypadku przekierowania, obiekt ten jest aktywny na przekierowanej stronie (jest ona cz˛eścia˛ żadania). ˛ Obiekty z tej przestrzeni maja˛ dostep ˛ do obiektów umieszczonych w innych przestrzeniach. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Przestrzenie (2) SessionScoped Obiekty w tej przestrzeni sa˛ widoczne dla każdego obiektu w danej sesji. „Tworzone” sa˛ w trakcie startu sesji, natomisat usuwane sa˛ w momencie jej wygaśniecia, ˛ ewentualnie wywołania odpowiedniej metody. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe Dane kontaktowe Wprowadzenie Wprowadzenie - JSF Java Bean Przestrzenie (2) SessionScoped Obiekty w tej przestrzeni sa˛ widoczne dla każdego obiektu w danej sesji. „Tworzone” sa˛ w trakcie startu sesji, natomisat usuwane sa˛ w momencie jej wygaśniecia, ˛ ewentualnie wywołania odpowiedniej metody. ApplicationScoped Obiekty umieszczone w tej przestrzeni widoczne sa˛ dla wszystkich klientów aplikacji od momentu uruchomienia aplikacji, aż do jej wyłaczenia. ˛ Wartości atrybutów tych obiektów sa˛ współdzielone dla wszystkich użytkowników. dr inż. Grzegorz Michalski Aplikacje wielowarstwowe