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