Core_Java_Servlets_i_JavaServer_Pages_Tom_II_Wydanie_II_jsp2w2.pdf

(626 KB) Pobierz
Core Java Servlets
i JavaServer Pages.
Tom II. Wydanie II
Autor: Marty Hall,
Larry Brown, Yaakov Chaikin
T³umaczenie: Daniel Kaczmarek
ISBN: 978-83-246-1726-5
Tytu³ orygina³u:
Core Servlets
and Javaserver Pages: Advanced
Technologies, Vol. 2 (2nd Edition)
Format: 172x245, stron: 632
• Jak wykorzystaæ strumienie?
• Jak stworzyæ efektowny interfejs u¿ytkownika?
• Jak zapewniæ bezpieczeñstwo w tworzonych aplikacjach?
Co spowodowa³o, ¿e jêzyk programowania Java zyska³ tak wielk¹ popularnoœæ?
Przyczyn jest kilka: mo¿liwoœæ przenoszenia kodu miêdzy programami, wydajnoœæ i to,
co programiœci lubi¹ najbardziej – mechanizm automatycznego oczyszczania pamiêci.
Nie bez znaczenia jest równie¿ to, ¿e Java jest jêzykiem zorientowanym obiektowo,
udostêpnia obs³ugê programowania rozproszonego oraz œwietn¹ dokumentacjê.
Ponadto liczne publikacje oraz pomocna spo³ecznoœæ sprawiaj¹, ¿e Java zajmuje
poczesne miejsce wœród innych jêzyków programowania.
Kolejne wydanie ksi¹¿ki zosta³o zaktualizowane o wszystkie te elementy, które pojawi³y
siê w wersji szóstej platformy Java Standard Edition. Dziêki tej ksi¹¿ce dowiesz siê,
w jaki sposób wykorzystaæ strumienie, jak parsowaæ dokumenty XML czy te¿ w jaki
sposób tworzyæ aplikacje sieciowe. Poznasz interfejs JDBC, sposób wykorzystania
transakcji oraz wykonywania zapytañ SQL. Autorzy w szczegó³owy sposób poka¿¹ Ci,
jak tworzyæ aplikacje z wykorzystaniem biblioteki Swing. Dodatkowo przedstawi¹,
w jaki sposób zapewniæ bezpieczeñstwo w tworzonych przez Ciebie aplikacjach.
Wszystkie te - oraz wiele innych – zagadnienia zostan¹ przedstawione w przystêpny
i sprawdzony sposób!
• Wykorzystanie strumieni
• Dokumenty XML i ich wykorzystanie w jêzyku Java
• Programowanie aplikacji sieciowych
• Wykorzystanie interfejsu JDBC
• Tworzenie aplikacji wielojêzycznych
• Mo¿liwoœci pakietu Swing
• Wykorzystanie biblioteki AWT
• Bezpieczeñstwo w aplikacjach
• Zastosowanie podpisu cyfrowego
• Sposoby wykorzystania obiektów rozproszonych (RMI)
Wykorzystaj zaawansowane mo¿liwoœci jêzyka Java w swoich projektach!
Spis treÊci
Wprowadzenie ................................................................................................................................................ 11
PodziÂkowania ............................................................................................................................................... 15
O autorach ...................................................................................................................................................... 16
RozdziaÄ 1. UÑywanie i wdraÑanie aplikacji internetowych ......................................................................... 17
1.1. Cele aplikacji internetowych .................................................................................... 18
Organizacja ....................................................................................................... 18
Przeno no è ..................................................................................................... 18
Separacja ......................................................................................................... 18
1.2. Struktura aplikacji internetowych ............................................................................... 19
Lokalizacje poszczególnych rodzajów plików ......................................................... 19
1.3. Rejestrowanie aplikacji internetowych na serwerze ..................................................... 23
Rejestrowanie aplikacji internetowych na serwerze Tomcat ................................... 24
Rejestrowanie aplikacji internetowych na innych serwerach ................................... 26
1.4. Strategie rozwoju i wdra ania aplikacji internetowych .................................................. 28
Kopiowanie struktury do skrótu lub dowiñzania symbolicznego .............................. 29
Wykorzystanie funkcji wdra ania udostöpnianych przez IDE ................................... 30
U ywanie narzödzi ant, maven i im podobnych ..................................................... 30
U ywanie IDE wraz z narzödziem Ant ................................................................... 31
1.5. Umieszczanie aplikacji internetowych w plikach WAR .................................................. 31
1.6. Tworzenie prostej aplikacji internetowej ..................................................................... 32
Pobranie aplikacji app-blank i zmiana jej nazwy na testApp ................................... 33
Pobranie plików test.html, test.jsp oraz TestServlet.java ....................................... 33
Dodanie plików test.html i test.jsp do aplikacji internetowej testApp ..................... 33
Umieszczenie pliku TestServlet.java w katalogu
testApp/WEB-INF/classes/coreservlets .......................................................... 34
Kompilacja pliku TestServlet.java ........................................................................ 34
Zadeklarowanie w pliku web.xml klasy TestServlet.class oraz adresu URL,
który jñ wywoäuje ........................................................................................... 35
Skopiowanie aplikacji testApp do katalogu katalog_tomcat/webapps .................... 36
4
Core Java Servlets i JavaServer Pages
Uruchomienie serwera Tomcat ............................................................................ 36
Wywoäanie aplikacji testApp przy u yciu adresu URL
w postaci http://localhost/testApp/zasób ...................................................... 37
1.7. Wspóäu ytkowanie danych przez aplikacje internetowe ................................................ 39
RozdziaÄ 2. Kontrolowanie dziaÄania aplikacji przy uÑyciu deskryptora web.xml ....................................47
2.1. Przeznaczenie deskryptora wdro enia ........................................................................ 48
2.2. Definiowanie elementu gäównego i elementu nagäówka ............................................... 48
2.3. Elementy deskryptora web.xml .................................................................................. 50
Wersja 2.4 specyfikacji serwletów ....................................................................... 50
Wersja 2.3 specyfikacji serwletów ....................................................................... 53
2.4. Przypisywanie nazw i wäasnych adresów URL .............................................................. 55
Przypisywanie nazw ............................................................................................ 56
Definiowanie wäasnych adresów URL ................................................................... 57
Nazewnictwo stron JSP ...................................................................................... 62
2.5. Wyäñczanie serwletu wywoäujñcego ............................................................................ 64
Zmiana odwzorowania wzorca adresu URL /servlet/ ............................................. 65
Globalne wyäñczanie serwletu wywoäujñcego na serwerze Tomcat .......................... 66
2.6. Inicjalizowanie i wstöpne äadowanie serwletów i stron JSP .......................................... 68
Przypisywanie serwletom parametrów inicjalizacyjnych .......................................... 68
Przypisywanie parametrów inicjalizacyjnych JSP .................................................... 71
Parametry inicjalizacyjne na poziomie caäej aplikacji ............................................. 74
ãadowanie serwletów w momencie uruchamiania serwera .................................... 74
2.7. Deklarowanie filtrów ................................................................................................ 78
2.8. Definiowanie stron powitalnych ................................................................................. 81
2.9. Wyznaczanie stron obsäugujñcych bäödy ..................................................................... 81
Element error-code ............................................................................................ 82
Element exception-type ...................................................................................... 84
2.10. Definiowanie zabezpieczeþ ...................................................................................... 86
Definiowanie metody uwierzytelniania ................................................................. 86
Ograniczanie dostöpu do zasobów sieciowych ...................................................... 88
Przypisywanie ról ............................................................................................... 91
2.11. Kontrolowanie czasu wygasania sesji ....................................................................... 92
2.12. Dokumentowanie aplikacji internetowych .................................................................. 92
2.13. Przypisywanie plikom typów MIME ............................................................................ 93
2.14. Konfigurowanie stron JSP ........................................................................................ 94
Lokalizacja deskryptorów bibliotek znaczników ..................................................... 94
Konfigurowanie wäa ciwo ci stron JSP ................................................................. 95
2.15. Kodowanie znaków ............................................................................................... 100
2.16. Tworzenie procesów nasäuchujñcych zdarzeþ aplikacji .............................................. 100
2.17. Tworzenie rozwiñzaþ przeznaczonych dla rodowisk klastrowych ............................... 101
2.18. Elementy J2EE ..................................................................................................... 104
RozdziaÄ 3. Zabezpieczenia deklaratywne ................................................................................................. 109
3.1. Uwierzytelnianie przy u yciu formularza .................................................................... 111
Definiowanie nazw u ytkowników, haseä i ról ...................................................... 113
Wäñczanie na serwerze uwierzytelniania przy u yciu formularzy
i wskazywanie lokalizacji strony logowania oraz strony obsäugi bäödu logowania .... 114
Tworzenie strony logowania .............................................................................. 115
Tworzenie strony z informacjñ o bäödzie logowania ............................................. 118
Wskazywanie adresów URL, które majñ byè zabezpieczone hasäem ..................... 118
Zdefiniowanie listy wszystkich abstrakcyjnych ról ............................................... 122
Spis treÊci
5
Wskazywanie adresów URL dostöpnych wyäñcznie
za po rednictwem protokoäu SSL .................................................................. 122
Wyäñczanie serwletu wywoäujñcego .................................................................... 124
3.2. Przykäad. Uwierzytelnianie przy u yciu formularzy ..................................................... 125
Strona gäówna ................................................................................................. 125
Deskryptor wdro enia ....................................................................................... 126
Plik z hasäami .................................................................................................. 129
Strony logowania i obsäugi bäödu logowania ....................................................... 130
Katalog investing ............................................................................................. 131
Katalog ssl ..................................................................................................... 134
Katalog admin ................................................................................................. 137
Serwlet NoInvokerServlet ................................................................................. 140
Strony niezabezpieczone .................................................................................. 141
3.3. Uwierzytelnianie metodñ BASIC ............................................................................... 144
Definiowanie nazw u ytkowników, haseä i ról ...................................................... 146
Wäñczanie na serwerze uwierzytelniania metodñ BASIC
i definiowanie nazwy obszaru ....................................................................... 146
Wskazywanie adresów URL, które majñ byè zabezpieczone hasäem ..................... 146
Zdefiniowanie listy wszystkich abstrakcyjnych ról ............................................... 147
Wskazywanie adresów URL dostöpnych wyäñcznie
za po rednictwem protokoäu SSL .................................................................. 147
3.4. Przykäad. Uwierzytelnianie metodñ BASIC ................................................................. 147
Strona gäówna ................................................................................................. 148
Deskryptor wdro enia ....................................................................................... 149
Plik haseä ........................................................................................................ 151
Plan finansowy ................................................................................................ 151
Biznesplan ...................................................................................................... 152
Serwlet NoInvokerServlet ................................................................................. 154
3.5. Konfigurowanie obsäugi protokoäu SSL na serwerze Tomcat ....................................... 155
3.6. WebClient. Interaktywna komunikacja z serwerami WWW .......................................... 161
3.7. Podpisywanie certyfikatu serwera ............................................................................ 164
Eksport certyfikatu CA ...................................................................................... 166
Komunikacja klienta WebClient z serwerem Tomcat przy u yciu protokoäu SSL ..... 170
RozdziaÄ 4. Zabezpieczenia programistyczne ........................................................................................... 173
4.1. ãñczenie zabezpieczeþ programistycznych i zabezpieczeþ
zarzñdzanych przez kontener ..................................................................... 175
Odwoäania do ról ............................................................................................. 176
4.2. Przykäad. ãñczenie zabezpieczeþ programistycznych i zabezpieczeþ
zarzñdzanych przez kontener ..................................................................... 177
4.3. Zastosowanie wyäñcznie zabezpieczeþ programistycznych ......................................... 180
4.4. Przykäad. Zastosowanie wyäñcznie zabezpieczeþ programistycznych ........................... 184
4.5. Zabezpieczenia programistyczne i protokóä SSL ......................................................... 187
Ustalenie, czy u ywany jest protokóä SSL ........................................................... 188
Przekierowywanie wywoäaþ, które nie dotyczñ protokoäu SSL ............................... 188
Odczytanie liczby bitów w kluczu ....................................................................... 189
Sprawdzenie algorytmu szyfrowania .................................................................. 189
Dostöp do certyfikatu X.509 klienta .................................................................. 189
4.6. Przykäad. Zabezpieczenia programistyczne i protokóä SSL .......................................... 190
6
Core Java Servlets i JavaServer Pages
RozdziaÄ 5. Filtry serwletów i stron JSP ................................................................................................... 195
5.1. Tworzenie prostych filtrów ...................................................................................... 196
Tworzenie klasy implementujñcej interfejs Filter ................................................. 197
Implementacja filtra w metodzie doFilter ............................................................ 198
Wywoäanie metody doFilter obiektu FilterChain ................................................... 198
Rejestrowanie filtra dla serwletów lub stron JSP ................................................. 198
Wyäñczenie serwletu wywoäujñcego .................................................................... 200
5.2. Przykäad. Filtr raportujñcy ........................................................................................ 201
5.3. Dostöp do kontekstu serwletu z poziomu filtra ......................................................... 207
5.4. Przykäad. Filtr zapisujñcy do dziennika ..................................................................... 208
5.5. U ywanie parametrów inicjalizujñcych dla filtrów ...................................................... 210
5.6. Przykäad. Filtr czasu udostöpnienia .......................................................................... 212
5.7. Blokowanie odpowiedzi .......................................................................................... 215
5.8. Przykäad. Filtr blokujñcy stronö ................................................................................ 215
5.9. Modyfikowanie odpowiedzi ..................................................................................... 221
Obiekt przechowujñcy odpowied , gotowy do wielokrotnego wykorzystania ............ 222
5.10. Przykäad. Filtr zastöpujñcy ..................................................................................... 224
Ogólny filtr modyfikujñcy ................................................................................... 224
Konkretny filtr modyfikujñcy .............................................................................. 225
5.11. Przykäad. Filtr kompresujñcy .................................................................................. 230
5.12. Konfigurowanie wspóäpracy filtra z obiektem RequestDispatcher ............................. 235
5.13. Przykäad. ãatanie potencjalnej dziury w zabezpieczeniach ........................................ 237
5.14. Peäna definicja deskryptora wdro enia ................................................................... 243
RozdziaÄ 6. Model zdarzeÆ aplikacji ........................................................................................................... 249
6.1. Monitorowanie zdarzeþ polegajñcych na utworzeniu i zniszczeniu kontekstu serwletu ..... 252
6.2. Przykäad. Inicjalizowanie wspóäu ytkowanych danych ................................................. 253
6.3. Wykrywanie zmian warto ci atrybutów kontekstu serwletu ......................................... 258
6.4. Monitorowanie zmian we wspóäu ytkowanych danych ................................................ 259
6.5. Umieszczanie obiektów nasäuchujñcych w bibliotekach znaczników ............................ 267
6.6. Przykäad. Pakiet zawierajñcy obiekty ledzñce nazwö firmy ........................................ 269
6.7. Wykrywanie zdarzeþ tworzenia i niszczenia sesji ....................................................... 275
6.8. Przykäad. Obiekt nasäuchujñcy, który zlicza sesje ...................................................... 276
Wyäñczanie obsäugi plików cookie ...................................................................... 282
6.9. Wykrywanie zmian w atrybutach sesji ...................................................................... 283
6.10. Przykäad. Monitorowanie zamówieþ na jachty ......................................................... 283
6.11. Wykrywanie inicjalizacji i zniszczenia ñdania serwletu ............................................ 290
6.12. Przykäad. Obliczanie obciñ enia serwera ñdaniami ................................................. 291
6.13. Wykrywanie zmian atrybutów w ñdaniach serwletów .............................................. 296
6.14. Przykäad. Zatrzymywanie obiektu zbierania statystyk ñdaþ ...................................... 297
6.15. Wykorzystanie wielu obiektów nasäuchujñcych wspóäpracujñcych ze sobñ ................. 299
ledzenie zamówieþ na towary z oferty dnia ....................................................... 300
Resetowanie licznika zamówieþ na oferty dnia ................................................... 306
6.16. Peäna definicja deskryptora wdro enia ................................................................... 311
RozdziaÄ 7. Podstawowe informacje na temat bibliotek znaczników ....................................................... 317
7.1. Komponenty biblioteki znaczników .......................................................................... 318
Klasa obsäugi znacznika ................................................................................... 319
Plik deskryptora biblioteki znaczników ............................................................... 320
Plik JSP .......................................................................................................... 321
Zgłoś jeśli naruszono regulamin