Title: Elementy JavaServer Pages
1Elementy JavaServer Pages
2Dyrektywy JSP
- Elementy dyrektyw uzywane sa do okreslania tej
informacji o stronie, która pozostaje bez zmiany
miedzy zadaniami strony. - Ogólna skladnia dyrektywy jest nastepujaca
- lt_at_ nazwa_dyrektywy atrybutwartosc gt
- Wartosci atrybutów musza byc zawarte w
pojedynczym lub podwójnym cudzyslowie. - Nazwa dyrektywy i wszystkie nazwy atrybutów sa
wrazliwe na wielkosc liter.
3Elementy dyrektyw
- Dyrektywa page - definiuje atrybuty niezalezne od
strony, tj. jezyk skryptowy, strona bledu i
wymagania buforowania - Dyrektywa include- dolacza pliki statyczne,
scalajac ich zawartosc ze strona zanim laczny
wynik zostanie przeksztalcony na klase
implementacji strony JSP - Dyrektywa taglib - deklaruje biblioteke
znaczników, zawierajaca uzywane na stronie
specjalizowane akcje
4Atrybuty dyrektywy page (I)
- language - definiuje jezyk skryptowy uzywany w
czesciach strony JSP zawierajacych kod. Domyslna
wartosc wynosi java, jest to jedyny jezyk
rekomendowany przez specyfikacje - extends - nazwa klasy bazowej dla serwletu.
Zalecane jest nieuzywanie tego atrybutu - import okresla liste klas i pakietów, które
tworzony serwlet powinien importowac. Domyslna,
ukryta i zawsze dostepna lista klas to
java.lang., javax.servlet., javax.servlet.http.
i javax.servlet.jsp.
5Atrybuty dyrektywy page (II)
- session - okresla czy strona bierze udzial w
sesji uzytkownika. Domyslna wartosc to true - info tekst, którego kontener WWW moze uzyc jako
opisu strony - buffer - okresla model buforowania. Jezeli wynosi
none, nie jest wlaczone buforowanie i cala
zawartosc jest zapisywana bezposrednio do
odpowiedniego PrintWriter w ServletResponse.
Jezeli jest podany rozmiar bufora, wtedy wyjscie
jest buforowane w buforze nie mniejszym niz
podany. Domyslna wartosc wynosi 8 kb
6Atrybuty dyrektywy page (III)
- errorPage definiuje sciezke URL wzgledem strony
lub wzgledem kontekstu do strony, do której ma
nastapic przekazanie, jesli przez kod na stronie
zostanie zgloszony wyjatek - isErrorpage wskazuje, ze strona zostala
zaprojektowana jako cel errorPage. Jezeli wartosc
wynosi true, strona uzyskuje dostep do zmiennej
exception, której wartosc jest referencja do
Throwable otrzymanej ze strony JSP zawierajacej
blad. Jezeli wynosi false wtedy zmienna exception
jest niedostepna. Domyslna wartosc to false
7Atrybuty dyrektywy page (IV)
- autoFlush okresla, czy bufor wyjsciowy powinien
byc oprózniany automatycznie (wartosc true) kiedy
sie zapelni, lub czy powinien nastapic wyjatek
(wartosc false) wskazujacy przepelnienie bufora.
Domyslna wartosc wynosi true - isTreadSafe jezeli wynosi true, kontener moze
obslugiwac równoczesnie wiele zadan. Jezeli
wynosi false, kontener obsluguje jedno zadanie
klienta w danym czasie. Domyslna wartosc wynosi
true - contentType okresla typ zawartosci generowanej
strony JSP. Domyslnym typem jest text/html
charsetISO-8859-1
8Atrybuty dyrektywy include i taglib
- file okresla sciezke URI wzgledem strony lub
wzgledem kontekstu dla dolaczanego pliku - prefix obowiazkowy. Przedrostek uzywany w
nazwach elemntów akcji dla wszystkich akcji z
biblioteki - uri obowiazkowy. Nazwa symboliczna biblioteki
znaczników zdefiniowana w pliku web.xml dla
aplikacji albo sciezka URI wzgledem strony lub
wzgledem kontekstu do pliku TLD, lub pliku JAR
biblioteki
9Niejawne obiekty JSP
- Uzywajac elementów skryptowych na stronie JSP,
zawsze mamy dostep do kilku obiektów, które
udostepnia kontener JSP. Sa one nazywane
obiektami niejawnymi (ang. Implicit objects). - Obiekty te sa egzemplarzami klas zdefiniowanych
przez specyfikacje serwletów i JSP. - Deklarujac wlasne zmienne na stronie JSP nalezy
pamietac, aby nie uzywac nazw zarezerwowanych dla
obiektów niejawnych.
10Zmienne reprezentujace niejawne obiekty JSP (I)
- request egzemplarz klasy o nazwie
javax.servlet.http.HttpServletRequest. Dostarcza
on metod, które pozwalaja na dostep do informacji
o biezacym zadaniu, tj. parametry zadania,
atrybuty, naglówki i ciasteczka - response egzemplarz klasy o nazwie
javax.servlet.http.HttpServletResponse.
Reprezentuje biezacy komunikat odpowiedzi.
Zawiera metody sluzace do ustawiania naglówków i
kodu stanu oraz do dodawania ciasteczek.
Dostarcza takze metod zwiazanych ze sledzeniem
sesji.
11Zmienne reprezentujace niejawne obiekty JSP (II)
- session egzemplarz klasy o nazwie
javax.servlet.http.HttpSession. Pozwala na dostep
do danych sesji klienta, zarzadzanych przez
serwer. - application egzemplarz klasy o nazwie
javax.servlet.ServletContext. Uzywany jest do
przechowywania referencji do innych obiektów,
które moga byc potrzebne wiecej niz jednemu
uzytkownikowi, tj. polaczenia z bazami danych,
wspólne dla wszystkich uzytkowników.
12Zmienne reprezentujace niejawne obiekty JSP (III)
- out egzemplarz klasy o nazwie
javax.servlet.jsp.JspWriter. Pozwala na dodawanie
tekstu do tresci komunikatu odpowiedzi za pomoca
metod print() i println(). - exception egzemplarz klasy o nazwie
java.lang.Throwable. Dostepny jest tylko na
stronach bledów i zawiera informacje o bledach
czasu wykonania.
13Zmienne reprezentujace niejawne obiekty JSP (IV)
- config - egzemplarz klasy o nazwie
javax.servlet.ServletConfig. Uzywany przez serwer
WWW do przekazywania podczas inicjalizacji
informacji do serwletu lub strony JSP. Rzadko
wykorzystywany. - page egzemplarz klasy o nazwie
java.lang.Object. Reprezentuje biezaca strone
JSP. Uzywany jest bardzo rzadko. - pageContext - egzemplarz klasy o nazwie
javax.servlet.jsp.PageContext. Umozliwia dostep
do wszystkich zasiegów JSP i kilku atrybutów
strony. Rzadko wykorzystywany.
14Elementy akcji JSP (I)
- Elementy akcji JSP reprezentuja dzialania
dynamiczne, które maja miejsce w fazie
wykonywania. Uzywane sa w celu dostepu do
komponentu JavaBeans na stronie JSP. - JSP definiuje kilka standardowych akcji i okresla
mozliwosc zaprojektowania wlasnych,
specjalizowanych akcji. - Zarówno przy standardowych, jak i
specjalizowanych akcjach, uzywana jest
nastepujaca notacja - ltnazwa_akcji atr1"wart1" atr2"wart2"gt
- tresc akcji
- lt/nazwa_akcjigt
15Elementy akcji JSP (II)
- Elementy akcji grupowane sa w biblioteki
znaczników (ang. tag libraries). - Nazwa akcji sklada sie z dwóch czesci
przedrostka biblioteki i nazwy akcji wewnatrz tej
biblioteki, oddzielonych za pomoca dwukropka. - Nazwy atrybutów sa wrazliwe na wielkosc znaków, a
wartosci musza byc ujete w pojedyncze lub
podwójne cudzyslowy. - Gdy tresc akcji nie jest okreslana, element akcji
przyjmuje postac - ltnazwa_akcji atr1"wart1" atr2"wart2" /gt
16Standardowe elementy akcji JSP (I)
- ltjspuseBeangt - udostepnia na stronie komponent
JavaBeans - ltjspgetPropertygt - pobiera wartosc wlasciwosci
komponentu JavaBeans i dodaje je do odpowiedzi - ltjspsetPropertygt - ustawia wartosc wlasciwosci
JavaBeans - ltjspincludegt - dolacza odpowiedz z serwletu lub
strony JSP podczas fazy przetwarzania odpowiedzi
17Standardowe elementy akcji JSP (II)
- ltjspforwardgt - przekierowuje przetwarzanie
zadania do serwletu lub strony JSP - ltjspparamgt - dodaje wartosc parametru do zadania
przekazywanego do innego serwletu lub strony JSP
uzywajac ltjspincludegt lub ltjspforwardgt - ltjspplugingt - generuje HTML, który zawiera
odpowiednie elementy zalezne od przegladarki
klienta (OBJECT lub EMBED), niezbedne do
wykonania apletu z oprogramowaniem Java Plugin
18Komponenty JavaBeans (I)
- Komponent JavaBeans, lub w skrócie bean (ziarno)
to klasa Javy, która podlega pewnym konwencjom
kodowania. - Ogólnie bean jest klasa z konstruktorem, który
nie pobiera argumentów. Umozliwia to narzedziom,
tj. kontener JSP, tworzenie egzemplarza klasy
bean przy poznaniu tylko nazwy tej klasy. - Dane komponentu bean sa reprezentowane przez jego
wlasciwosci (ang. properties).
19Komponenty JavaBeans (II)
- Nazwy metod do odczytu i zapisu wartosci
wlasciwosci, nazywane zbiorowo metodami akcesora
(ang. accessor methods) komponentu bean, musza
skladac sie odpowiednio ze slów kluczowych get i
set oraz nazwy wlasciwosci. - Metody akcesora do odczytu wartosci wlasciwosci
znane sa jako metody pobierania (ang. getter), a
metody do zapisu jako metody ustawiania (ang.
setter).