head first servlets & jsp. edycja polska. wydanie ii pełna wersja.pdf

(70287 KB) Pobierz
707932838 UNPDF
Head First Servlets & JSP.
Autor: Bryan Basham,
Kathy Sierra, Bert Bates
TĀumaczenie: MikoĀaj Szczepaniak
ISBN: 978-83-246-1814-9
Servlets and JSP, 2 ed.
Format: 200x230, stron: 920
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Wykorzystaj innowacyjne metody nauki
i zacznij tworzyě dynamiczne aplikacje internetowe!
¤ Jak korzystaě z technologii JSP?
¤ Jak dziaĀajĴ serwlety?
¤ Jak zastosowaě wzorzec projektowy MCV?
Statyczna strona internetowa dziľ juŃ nikogo nie zachwyca. Czas na zmianķ!
Pora sprawiě, aby tworzone przez Ciebie aplikacje staĀy siķ wyjĴtkowo dynamiczne,
elastyczne i interaktywne. Poznaj i wykorzystaj w tym celu nowoczesnĴ technologiķ
serwletw i stron JSP. Dziķki niej zbudujesz zĀoŃony serwis z zastosowaniem jķzyka
Java wplecionego w kod HTML danej strony oraz serwletu, ktry przetwarza informacje
otrzymane z serwera, aby dostarczyě uŃytkownikowi gotowy obraz witryny.
Aby Twoja aplikacja dziaĀaĀa idealnie, potrzebujesz jeszcze tylko zabezpieczeĺ,
kontenerw serwletw i modelu MCV. Jak to wszystko zĀoŃyě i uruchomiě?
Tego dowiesz siķ wĀaľnie z naszego nowatorskiego podrķcznika!
KsiĴŃka âHead First Servlets & JSP. Edycja polska. Wydanie IIÒ napisana zostaĀa
w oparciu o innowacyjne metody przekazywania wiedzy, polegajĴce na wĀĴczaniu
w proces nauki elementw zabawy oraz oddziaĀywaniu na wiele zmysĀw. To pomaga
szybko zrozumieě tķ technologiķ i osiĴgnĴě biegĀoľě w tworzeniu dynamicznych stron
oraz aplikacji. Z bogato ilustrowanego i napisanego lekkim jķzykiem podrķcznika
dowiesz siķ m.in., co to jest serwlet, kontener i protokĀ HTTP, do czego sĀuŃĴ strony JSP
oraz jak tworzyě ľrodowisko wdroŃeniowe aplikacji i zabezpieczaě przesyĀane informacje.
Architektura aplikacji internetowej nie bķdzie juŃ miaĀa przed TobĴ Ńadnych tajemnic!
¤ PrzeglĴd technologii serwletw i stron JSP
¤ Architektura aplikacji internetowej
¤ WdraŃanie aplikacji internetowej
¤ Strony bezskryptowe
¤ Znaczniki niestandardowe
¤ Zabezpieczenia serwletw
¤ Filtry
¤ Korporacyjne wzorce projektowe
¤ ProtokĀ HTTPS
KsiĴŃka przygotowuje do najnowszej wersji egzaminu SCWCD z platformy J2EE 1.5!
Edycja polska. Wydanie II
707932838.026.png 707932838.027.png 707932838.028.png 707932838.029.png
 
Spis treści
Spis treści (skrócony)
Wprowadzenie
15
1.
Do czego służą serwlety i strony JSP? Wprowadzenie i przegląd
najważniejszych zagadnień
29
2.
Architektura aplikacji internetowej. Bardziej szczegółowy przegląd zagadnień
65
3.
Minipodręcznik MVC. Omówienie MVC
95
4.
Być serwletem. Żądanie i odpowiedź
121
5.
Być aplikacją internetową. Atrybuty i obiekty nasłuchujące
175
6.
Stan konwersacyjny. Zarządzanie sesjami
251
7.
Być stroną JSP. Stosowanie technologii JSP
309
8.
Strony bezskryptowe. Bezskryptowe strony JSP
371
9.
Potęga znaczników niestandardowych. Stosowanie biblioteki JSTL
467
10.
Kiedy JSTL nie wystarcza. Tworzenie znaczników niestandardowych
527
11.
Jak wdrożyć aplikację internetową? Wdrażanie aplikacji internetowych
629
12.
Zachowaj to w tajemnicy, ukryj w bezpiecznym miejscu. Bezpieczeństwo
aplikacji internetowych
677
13.
Potęga filtrów. Filtry i opakowania
729
14. Korporacyjne wzorce projektowe. Wzorce i Struts
765
Dodatek A Końcowy egzamin próbny
819
Skorowidz
893
Spis treści
W
Wprowadzenie
Twój mózg koncentruje się na serwletach. W tym rozdziale Ty próbujesz się czegoś nauczyć ,
a Twój mózg robi Ci przysługę i nie przykłada się do zapamiętywania zdobytej wiedzy. Twój mózg
myśli sobie: „Lepiej zachowam miejsce na bardziej istotne informacje, na przykład: jakich dzikich
zwierząt należy unikać bądź czy jazda nago na snowboardzie jest dobrym pomysłem”. Jak
w takim razie można przekonać swój mózg, że nasze życie zależy od opanowania serwletów?
Dla kogo jest ta książka?
16
Wiemy, co sobie myśli Twój mózg
17
Metapoznanie
19
Zmuś swój mózg do posłuszeństwa
21
Czego potrzebujesz, aby skorzystać z tej książki?
22
Zdajemy egzamin certyfikujący
24
Redaktorzy techniczni
26
Podziękowania
27
5
707932838.001.png
Spis treści
1
Do czego służą serwlety i strony JSP?
Aplikacje internetowe są super. Ile tradycyjnych aplikacji z graficznym interfejsem użytkownika
używanych przez miliony osób na całym świecie potrafisz wymienić? Jako programista aplikacji
internetowych możesz uwolnić się od problemów wdrażania będących udziałem wszystkich
standardowych aplikacji i udostępniać swoje aplikacje każdemu, kto dysponuje przeglądarką
internetową. Będziesz jednak potrzebował serwletów i stron JSP. Będziesz ich potrzebował,
ponieważ zwykłe, statyczne strony HTML były dobre… w latach 90. ubiegłego wieku. Zatem
dowiedz się, jak przekształcić witrynę WWW w aplikację internetową .
įċdanie HTTP
Cele egzaminu 30
Czym zajmuje się serwer WWW i klient oraz jak się ze sobą porozumiewają? 32
Dwuminutowy kurs języka HTML 35
Czym jest protokół HTTP? 38
Anatomia żądań GET i POST oraz odpowiedzi protokołu HTTP 44
Lokalizacja stron WWW przy użyciu adresów URL 48
Serwery WWW, strony statyczne i CGI 52
Serwlety bez tajemnic: pisanie, wdrażanie i uruchamianie serwletów 58
Technologia JSP jest efektem wprowadzenia języka Java do kodu HTML 62
Przeglċdarka
internetowa
OdpowiedĮ HTTP
Klient
Kl uczowe elem enty strumie nia
odpowied zi :
h kod stanu (określający ,
czy d ane żądanie zostało
p omyślnie prz etworzone),
h typ zawartości ( tekst, obra z ,
HTML itp.),
h z awartość (w łaściwy kod
HTML, ob raz itp.).
Serwer
2
Architektura aplikacji internetowej
Serwlety potrzebują pomocy. Kiedy do naszej aplikacji dociera żądanie, ktoś musi utworzyć obiekt
serwletu lub przynajmniej wątek, który to żądanie obsłuży. Ktoś musi wywołać metodę doPost()
lub doGet() serwletu. Ktoś musi przekazać żądanie do serwletu oraz odebrać to, co serwlet
wygeneruje w odpowiedzi. Ktoś musi decydować o życiu, śmierci i zasobach niezbędnych do pracy
serwletu. W tym rozdziale przyjrzymy się koncepcji kontenera i po raz pierwszy zwrócimy uwagę na
wzorzec projektowy MVC.
Serwlet
Cele egzaminu
66
Czym jest kontener oraz co nam daje?
67
Kontroler
Jak to wszystko wygląda w kodzie (co sprawia, że serwlet jest serwletem)?
72
Określanie nazw serwletów i kojarzenie ich z adresami URL
w deskryptorze wdrożenia
JSP
74
Opowiadanie: Bob buduje witrynę swatającą
(wprowadzenie do wzorca MVC)
class Foo {
void bar()
{
doBar();
}
}
78
Ogólne informacje i przykład wzorca model-widok-kontroler (MVC)
82
„Działający” deskryptor wdrożenia (DD)
92
Widok
Model
Jaka w tym wszystkim jest rola platformy J2EE?
93
BD
6
707932838.002.png 707932838.003.png 707932838.004.png 707932838.005.png 707932838.006.png
Spis treści
3
Minipodręcznik MVC
Tworzenie i wdrażanie aplikacji internetowych MVC. Nadszedł czas, aby utrudzić nasze dłonie
pisaniem formularzy HTML, kontrolerów serwletów, modeli (zwykłych, tradycyjnych klas Javy),
deskryptorów wdrożenia w formacie XML oraz widoków opartych na stronach JSP. Najwyższa
pora zbudować, wdrożyć i przetestować taką aplikację. Najpierw jednak musimy przygotować
odpowiednie środowisko wytwarzania aplikacji. Następnie musimy przygotować środowisko
wdrażania , postępując przy tym zgodnie ze specyfikacją serwletów i JSP oraz wymaganiami
Tomcata. Owszem… tworzymy małą aplikację, jednak niemal żadna aplikacja nie jest na tyle mała,
by nie można w niej było wykorzystać wzorca MVC.
tomcat
Katalogi właściwe dla Tomcata
webapps
Piwo-w1
Cele egzaminu
96
WEB-INF
<html>
<body>
...
</body>
</html>
form.html
<%
...
%>
wynik.jsp
Zbudujmy aplikację internetową MVC; pierwszy projekt
97
Część specyfikacji serwletów
Tworzenie środowisk wytwarzania i wdrażania aplikacji
100
classes
lib
<webapp>
.
.
</webapp>
Ten plik web.xml
MUSI się znajdować
w katalogu WEB-INF
Tworzenie i testowanie kodu HTML początkowej strony formularza
103
web.xml
Tworzenie deskryptora wdrożenia (DD)
105
com
Tworzenie, kompilacja, wdrażanie i testowanie serwletu kontrolera
108
Katalogi właściwe
dla danej aplikacji
Projektowanie, tworzenie i testowanie komponentu modelu
110
example
Rozszerzenie kontrolera o wywołania modelu
111
web
model
Tworzenie i wdrażanie komponentów widoku (to właśnie JSP)
115
0010 0001
1100 1001
0001 0011
0101 0110
EkspertPiwny.class
Rozszerzenie serwletu o wywołanie strony JSP
116
0010 0001
1100 1001
0001 0011
0101 0110
WyborPiwa.class
4
Być serwletem
Serwlety potrzebują pomocy. Zadaniem serwletu jest obsługa żądań klientów i odsyłanie do
klienta właściwych odpowiedzi . Żądanie może być zupełnie proste, np. prześlij mi stronę powitalną ,
lub znacznie bardziej skomplikowane, np. wygeneruj zamówienie na podstawie zawartości mojego
koszyka . Żądanie obejmuje kluczowe dane, a kod Twojego serwletu musi wiedzieć, jak należy te dane
odszukać i jak ich użyć . Co więcej, kod serwletu musi wiedzieć, jak odesłać odpowiedź . A jeśli nie
)DEMPOTENCJA
TONIC
WSTYDLIWEGOb
Cele egzaminu 122
Życie serwletu w kontenerze 123
Inicjalizacja i wątki serwletu 129
FAKTYCZNYM celem serwletu jest obsługa żądań GET i POST 133
Historia pewnego niepowtarzalnego żądania 140
Co sprawia, że przeglądarka wysyła albo żądanie GET , albo żądanie POST ? 145
Wysyłanie i stosowanie parametrów
147
Serwlet wykorzystuje dane dołączone
do żądania POST do zaktualizowania
bazy danych.
Dobrze, wiemy już, do czego służy klasa Request
przyjrzyjmy się teraz klasie Response
154
83/ZYa^K\dKVXO
Możesz ustawiać nagłówki odpowiedzi,
możesz dodawać nagłówki odpowiedzi
POST
...
...
161
DB
Przekierowania kontra przydział żądań
164
Serwlet
Serwlet odsyła odpowiedź
z wygenerowanym kodem strony HTML.
Klient
Przegląd klasy HttpServletResponse
168
7
tomcat
707932838.007.png 707932838.008.png 707932838.009.png 707932838.010.png 707932838.011.png 707932838.012.png 707932838.013.png 707932838.014.png
Spis treści
5
Być aplikacją internetową
Żaden serwlet nie działa samodzielnie. We współczesnych aplikacjach internetowych osiąganie
zamierzonego celu jest możliwe dzięki współpracy wielu komponentów. Stosujemy komponenty
modelu, widoku oraz kontrolera. Wykorzystujemy także rozmaite klasy pomocnicze. Jednak w jaki
sposób należy łączyć wszystkie te elementy, aby tworzyły jedną aplikację internetową? W jaki
sposób komponenty mogą korzystać z tych samych informacji? Jak ukrywać pewne informacje?
Jak zapewniać bezpieczeństwo informacji podczas przetwarzania wielowątkowego? Od odpowiedzi
na te pytania może zależeć Twoja praca.
Atrybuty kontekstu
serwlet
Cele egzaminu
176
Wybawieniem są parametry inicjalizacji i obiekt ServletConfig
177
BD
„Adres poczty
administratora”
foo@wickedlysmart.com
Jak strona JSP może uzyskać dostęp do parametrów
inicjalizacji serwletu?
„Uİytkownicy
pracujċcy
równoczeĤnie”
42
serwlet
Poâċczenie
z bazċ
danych
183
<html>
<body>
<jsp:setProperty
name=”foo”
property=”bar”>
</body>
</html>
Wybawieniem są parametry inicjalizacji kontekstu
185
serwlet
DostĐp do tych atrybutów ma kaİdy
skâadnik aplikacji.
Porównanie obiektów ServletConfig oraz ServletContext
187
JSP
Chcemy obiektu ServletContextListener
194
Atrybuty sesji
Przewodnik: prosty obiekt ServletContextListener
196
<html>
<body>
<jsp:setProperty
name=”foo”
property=”bar”>
</body>
</html>
serwlet
Kompilacja, wdrażanie i testowanie obiektu nasłuchującego
204
Serwlet A
Widok JSP
Kompletna historia — obiekt nasłuchujący kontekstu
206
serwlet
Osiem obiektów nasłuchujących nie tylko zdarzeń kontekstu
208
Serwlet B
DostĐpne tylko dla komponentów z dostĐpem
do okreĤlonego obiektu HttpSession
Czym dokładnie jest atrybut
213
Atrybuty ŻĄDANIA
Interfejs API atrybutów — ciemna strona atrybutów
217
<html>
<body>
<jsp:setProperty
name=”foo”
property=”bar”>
</body>
</html>
Zasięg kontekstu nie zapewnia bezpieczeństwa wątków!
220
"RekomendacjaPiwosza"
"Moose Drool"
serwlet
Analiza tego problemu w zwolnionym tempie...
221
Kontroler
Widok JSP
Próba synchronizacji
223
DostĐpne tylko dla komponentów z dostĐpem
do okreĤlonego obiektu ServletRequest
Czy atrybuty sesji gwarantują bezpieczeństwo
przetwarzania wielowątkowego?
226
Interfejs SingleThreadModel
229
Tylko atrybuty żądania i zmienne lokalne zapewniają bezpieczną
wielowątkowość!
232
Atrybuty żądania i przydział żądań
233
8
707932838.015.png 707932838.016.png 707932838.017.png 707932838.018.png 707932838.019.png 707932838.020.png 707932838.021.png 707932838.022.png 707932838.023.png 707932838.024.png 707932838.025.png
Zgłoś jeśli naruszono regulamin