Dane szczegółowe książki
Java Servlet i Java Server Pages / Hall, Marty (1962-); Rajca, Piotr (1970-)
Tytuł
Java Servlet i Java Server Pages
Tytuł oryginału
Core Servlets and JavaServer pages
Wydawnictwo
Gliwice: "Helion", 2002
ISBN
8371976038
Hasła przedmiotowe
Informacje dodatkowe
Książka zawiera przykładowe aplikacje
Spis treści
pokaż spis treści
SPIS TREŚCI 1
PODZIĘKOWANIA 11
O AUTORZE 11
WPROWADZENIE 12
PRAWDZIWY KOD DLA PRAWDZIWYCH PROGRAMISTÓW 13
W JAKI SPOSÓB ZORGANIZOWANA JEST TA KSIĄŻKA 13
Część 1.: Serwlety 14
Część 2.: JavaServer Pages 15
Część 3.: Technologie pomocnicze 16
ZASTOSOWANE KONWENCJE 16
Podstawowa metoda 16
O WITRYNIE WWW 17
ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SERWLETACH I JAVA SERVER PAGES 18
1.1 SERWLETY 18
1.2 ZALETY SERWLETÓW W PORÓWNANIU Z „TRADYCYJNYMI” PROGRAMAMI CGI 19
Efektywność 19
Wygoda 20
Duże możliwości 20
Przenośność 20
Bezpieczeństwo 20
Niewielkie koszty 21
1.3 JAVA SERVER PAGES 21
1.4 ZALETY JSP 22
W porównaniu z Active Server Pages (ASP) 22
W porównaniu z PHP 22
W porównaniu z serwletami 22
W porównaniu z Server-Side Includes (SSI) 22
W porównaniu z językiem JavaScript 23
W porównaniu ze statycznym kodem HTML 23
1.5 INSTALACJA I KONFIGURACJA 23
Zdobywanie oprogramowania do obsługi serwletów i dokumentów JSP 23
Zapamiętaj adres lub zainstaluj dokumentację Java Servlet oraz JSP API 25
Wskaż klasy używane przez kompilator Javy 25
Unix (C Shell) 26
Windows 26
Umieść klasy w pakietach 26
Skonfiguruj serwer 26
Numer portu 27
Zmienna środowiskowa JAVA_HOME 27
Ustawienia pamięci systemu DOS 27
Ustawienie CR/LF w serwerze Tomcat 3.0 27
Uruchomienie serwera 28
Kompilacja i instalacja własnych serwletów 28
Tomcat 28
Tomcat 3.1 28
JSWDK 29
Java Web Server 2.0 29
ROZDZIAŁ 2. PIERWSZE SERWLETY 30
2.1 PODSTAWOWA STRUKTURA SERWLETÓW 30
2.2 PROSTY SERWLET GENERUJĄCY ZWYCZAJNY TEKST 31
Kompilacja i instalacja serwletów 32
Wywoływanie serwletów 33
2.3 SERWLETY GENERUJĄCE KOD HTML 34
2.4 UMIESZCZANIE SERWLETÓW W PAKIETACH 35
Tworzenie serwletów należących do konkretnego pakietu 36
Kompilacja serwletów należących do pakietów 36
Wywoływanie serwletów należących do pakietów 38
2.5 PROSTE NARZĘDZIA POMOCNE PRZY TWORZENIU DOKUMENTÓW HTML 38
2.6 CYKL ŻYCIOWY SERWLETÓW 40
Metoda init 40
Metoda service 41
Metody doGet, doPost oraz doXxx 42
Interfejs SingleThreadModel 43
Metoda destroy 43
2.7 PRZYKŁAD UŻYCIA PARAMETRÓW INICJALIZACYJNYCH 44
2.8 PRZYKŁAD WYKORZYSTANIA INICJALIZACJI SERWLETU I DATY MODYFIKACJI STRONY 47
2.9 TESTOWANIE SERWLETÓW 50
2.10 WEBCLIENT: INTERAKTYWNA WYMIANA INFORMACJI Z SERWEREM WWW 52
WebClient 52
HttpClient 55
NetworkClient 56
SocketUtil 57
CloseableFrame 57
LabeledTextField 58
Interruptible 59
ROZDZIAŁ 3. OBSŁUGA ŻĄDAŃ: DANE PRZESYŁANE Z FORMULARZY 60
3.1 ZNACZENIE INFORMACJI PRZESYŁANYCH Z FORMULARZY 60
3.2 ODCZYTYWANIE DANYCH FORMULARZY W SERWLETACH 61
3.3 PRZYKŁAD: ODCZYT TRZECH KONKRETNYCH PARAMETRÓW 61
3.4 PRZYKŁAD: ODCZYT WSZYSTKICH PARAMETRÓW 64
3.5 SERWIS REJESTRACJI ŻYCIORYSÓW 67
3.6 FILTROWANIE ŁAŃCUCHÓW W POSZUKIWANIU ZNAKÓW SPECJALNYCH HTML 76
Implementacja filtrowania 76
Przykład 77
ROZDZIAŁ 4. OBSŁUGA ŻĄDAŃ: NAGŁÓWKI ŻĄDAŃ HTTP 80
4.1 ODCZYTYWANIE WARTOŚCI NAGŁÓWKÓW ŻĄDANIA W SERWLETACH 80
4.2 WYŚWIETLANIE WSZYSTKICH NAGŁÓWKÓW 82
4.3 NAGŁÓWKI ŻĄDAŃ PROTOKOŁU HTTP 1.1 84
4.4 PRZESYŁANIE SKOMPRESOWANYCH STRON WWW 88
4.5 OGRANICZANIE DOSTĘPU DO STRON WWW 90
ROZDZIAŁ 5. DOSTĘP DO STANDARDOWYCH ZMIENNYCH CGI 95
5.1 ODPOWIEDNIKI ZMIENNYCH CGI DOSTĘPNE W SERWLETACH 95
5.2 SERWLET WYŚWIETLAJĄCY WARTOŚCI ZMIENNYCH CGI 98
ROZDZIAŁ 6. GENERACJA ODPOWIEDZI: KODY STATUSU 100
6.1 OKREŚLANIE KODÓW STATUSU 100
6.2 KODY STATUSU PROTOKOŁU HTTP 1.1 ORAZ ICH PRZEZNACZENIE 102
6.3 INTERFEJS UŻYTKOWNIKA OBSŁUGUJĄCY RÓŻNE SERWISY WYSZUKIWAWCZE 109
ROZDZIAŁ 7. GENERACJA ODPOWIEDZI: NAGŁÓWKI ODPOWIEDZI HTTP 114
7.1 OKREŚLANIE NAGŁÓWKÓW ODPOWIEDZI Z POZIOMU SERWLETÓW 114
7.2 NAGŁÓWKI ODPOWIEDZI PROTOKOŁU HTTP 1.1 ORAZ ICH ZNACZENIE 116
Accept-Ranges 116
Age 116
Allow 116
Cache-Control 116
Connection 117
Content-Encoding 117
Content-Language 118
Content-Length 118
Content-Location 118
Content-MD5 118
Content-Range 118
Content-Type 118
Date 120
ETag 120
Expires 120
Last-Modified 120
Location 120
Pragma 121
Refresh 121
Retry-After 121
Server 122
Set-Cookie 122
Trailer 122
Transfer-Encoding 122
Upgrade 122
Vary 122
Via 122
Warning 122
WWW-Authenticate 123
7.3 TRWAŁE PRZECHOWYWANIE STANU SERWLETU I AUTOMATYCZNE ODŚWIEŻANIE STRON 123
7.4 STOSOWANIE TRWAŁYCH POŁĄCZEŃ HTTP 130
7.5 WYKORZYSTANIE SERVLETÓW DO GENERACJI OBRAZÓW GIF 133
ROZDZIAŁ 8. OBSŁUGA COOKIES 141
8.1 KORZYŚCI STOSOWANIA COOKIES 141
Identyfikacja użytkowników podczas trwania sesji na witrynach komercyjnych 141
Unikanie konieczności podawania nazwy użytkownika i hasła 142
Dostosowywanie witryny 142
Dobór reklam 142
8.2 NIEKTÓRE PROBLEMY ZWIĄZANE ZE STOSOWANIEM COOKIES 142
8.3 Narzędzia obsługi cookies dostępne w servletach 143
Tworzenie cookies 144
Atrybuty cookies 144
Umieszczanie cookies w nagłówkach odpowiedzi 146
Odczytywanie cookies nadesłanych przez przeglądarkę 146
8.4 PRZYKŁADY GENERACJI I ODCZYTYWANA COOKIES 146
8.5 PROSTE NARZĘDZIA DO OBSŁUGI COOKIES 149
Odnajdywanie cookie o określonej nazwie 150
Tworzenie cookies o długim czasie istnienia 150
8.6 INTERFEJS WYSZUKIWAWCZY Z MOŻLIWOŚCIĄ ZAPAMIĘTYWANIA USTAWIEŃ 151
ROZDZIAŁ 9. ŚLEDZENIE SESJI 156
9.1 POTRZEBA ŚLEDZENIA SESJI 156
Cookies 156
Przepisywanie adresów URL 157
Ukryte pola formularzy 157
Śledzenie sesji w serwletach 157
9.2 NARZĘDZIA PROGRAMISTYCZNE DO ŚLEDZENIA SESJI 158
Pobieranie obiektu HttpSession skojarzonego z bieżącym żądaniem 158
Pobieranie informacji skojarzonych z sesją 158
Kojarzenie informacji z sesją 160
Zakańczanie sesji 161
Kodowanie adresów URL przesyłanych do przeglądarki 161
9.3 SERVLET GENERUJĄCY INDYWIDUALNY LICZNIK ODWIEDZIN DLA KAŻDEGO UŻYTKOWNIKA 162
9.4 INTERNETOWY SKLEP WYKORZYSTUJĄCY KOSZYKI I ŚLEDZENIE SESJI 164
Tworzenie interfejsu użytkownika 165
Obsługa zamówień 169
To czego nie widać: Implementacja koszyka i katalogu towarów 172
ROZDZIAŁ 10. ELEMENTY SKRYPTOWE JSP 178
10.1 ELEMENTY SKRYPTOWE 180
Tekst szablonu 180
10.2 WYRAŻENIA JSP 180
Predefiniowane zmienne 180
Składnia XML stosowana w wyrażeniach 181
Zastosowanie wyrażeń jako wartości atrybutów 181
Przykład 182
10.3 SKRYPTLETY JSP 183
Wykorzystanie skryptletów do warunkowego wykonania fragmentu strony JSP 185
Specjalna składnia skryptletów 186
10.4 DEKLARACJE JSP 186
Specjalna składnia zapisu deklaracji 187
10.5 PREDEFINIOWANE ZMIENNE 187
ROZDZIAŁ 11. DYREKTYWA PAGE: STRUKTURALIZACJA GENEROWANYCH SERWLETÓW 190
11.1 ATRYBUT IMPORT 190
Katalogi służące do przechowywania własnych klas 191
Przykład 192
11.2 ATRYBUT CONTENTTYPE 193
Generacja zwyczajnych dokumentów tekstowych 194
Generacja arkuszy kalkulacyjnych programu Microsoft Excel 195
11.3 ATRYBUT ISTHREADSAFE 198
11.4 ATRYBUT SESSION 200
11.5 ATRYBUT BUFFER 200
11.6 ATRYBUT AUTOFLUSH 200
11.7 ATRYBUT EXTENDS 200
11.8 ATRYBUT INFO 201
11.9 ATRYBUT ERRORPAGE 201
11.10 ATRYBUT ISERRORPAGE 201
11.11 ATRYBUT LANGUAGE 203
11.12 SKŁADNIA XML ZAPISU DYREKTYW 204
ROZDZIAŁ 12. DOŁĄCZANIE PLIKÓW I APLETÓW DO DOKUMENTÓW JSP 205
12.1 DOŁĄCZANIE PLIKÓW W CZASIE PRZEKSZTAŁCANIA STRONY 205
12.2 DOŁĄCZANIE PLIKÓW PODCZAS OBSŁUGI ŻĄDAŃ 207
DOŁĄCZANIE APLETÓW KORZYSTAJĄCYCH Z JAVA PLUG-IN 209
Znacznik akcji jsp:plugin 210
Znaczniki akcji jsp:param oraz jsp:params 212
Znacznik akcji jsp:fallback 213
Przykład: Generacja tekstu z cieniem 213
ROZDZIAŁ 13. WYKORZYSTANIE KOMPONENTÓW JAVABEANS W DOKUMENTACH JSP 219
13.1 PODSTAWOWE SPOSOBY UŻYCIA KOMPONENTÓW 220
Dostęp do właściwości komponentów 221
Określanie właściwości komponentów — prosty przypadek 222
Instalacja klas komponentów 222
13.2 PRZYKŁAD: STRINGBEAN 223
13.3 OKREŚLANIE WARTOŚCI WŁAŚCIWOŚCI KOMPONENTÓW 224
Kojarzenie właściwości z parametrami wejściowymi 227
Automatyczna konwersja typów 228
Kojarzenie wszystkich właściwości z parametrami wejściowymi 229
13.4 WSPÓLNE WYKORZYSTYWANIE KOMPONENTÓW 230
Warunkowe tworzenie komponentów 231
ROZDZIAŁ 14. TWORZENIE BIBLIOTEK ZNACZNIKÓW 234
14.1 ELEMENTY TWORZĄCE BIBLIOTEKĘ ZNACZNIKÓW 235
Klasa obsługi znacznika 235
Plik deskryptora biblioteki znaczników 236
Plik JSP 237
14.2 DEFINIOWANIE PROSTYCH ZNACZNIKÓW 238
Klasa obsługi znacznika 238
Plik deskryptora biblioteki znaczników 239
Plik JSP 240
14.3 PRZYPISYWANIE ATRYBUTÓW ZNACZNIKOM 241
Klasa obsługi znacznika 242
Plik deskryptora biblioteki znaczników 243
Plik JSP 244
14.4 DOŁĄCZANIE ZAWARTOŚCI ZNACZNIKA 245
Klasa obsługi znacznika 245
Plik deskryptora biblioteki znaczników 247
Plik JSP 248
14.5 OPCJONALNE DOŁĄCZANIE ZAWARTOŚCI ZNACZNIKA 249
Klasa obsługi znacznika 249
Plik deskryptora biblioteki znaczników 250
Plik JSP 251
14.6 MANIPULOWANIE ZAWARTOŚCIĄ ZNACZNIKA 253
Klasa obsługi znacznika 253
Plik deskryptora biblioteki znaczników 254
Plik JSP 255
14.7 WIELOKROTNE DOŁĄCZANIE LUB OBSŁUGA ZAWARTOŚCIĄ ZNACZNIKA 256
Klasa obsługi znacznika 257
Plik deskryptora biblioteki znaczników 257
Plik JSP 258
14.8 STOSOWANIE ZNACZNIKÓW ZAGNIEŻDŻONYCH 259
Klasy obsługi znaczników 260
Plik deskryptora biblioteki znaczników 263
Plik JSP 265
ROZDZIAŁ 15. INTEGRACJA SERWLETÓW I DOKUMENTÓW JSP 267
15.1 PRZEKAZYWANIE ŻĄDAŃ 267
Użycie zasobów statycznych 268
Przekazywanie informacji do strony docelowej 269
Interpretacja względnych adresów URL przez stronę docelową 270
Inne sposoby pobierania obiektu RequestDispatcher 271
15.2 PRZYKŁAD: INTERNETOWE BIURO PODRÓŻY 271
15.3 DOŁĄCZANIE DANYCH STATYCZNYCH BĄDŹ DYNAMICZNYCH 282
15.4 PRZYKŁAD: PREZENTACJA NIEPRZETWORZONYCH WYNIKÓW ZWRACANYCH PRZEZ SERWLETY LUB STRONY JSP 284
15.5 PRZEKAZYWANIE ŻĄDAŃ ZE STRON JSP 287
ROZDZIAŁ 16. FORMULARZE HTML 289
16.1 JAK PRZESYŁANE SĄ DANE Z FORMULARZY HTML 289
16.2 ELEMENT FORM 293
16.3 TEKSTOWE ELEMENTY KONTROLNE 297
Pola tekstowe 297
VALUE 298
Pola hasła 299
Wielowierszowe pola tekstowe 299
16.4 PRZYCISKI 301
Przycisk SUBMIT 301
Przyciski RESET 303
Przyciski JavaScript 304
16.5 POLA WYBORU I PRZYCISKI OPCJI 305
Pola wyboru 305
Przyciski opcji 306
16.6 LISTY I LISTY ROZWIJANE 307
16.7 ELEMENT KONTROLNY SŁUŻĄCY DO PRZESYŁANIA PLIKÓW 310
16.8 MAPY ODNOŚNIKÓW OBSŁUGIWANE NA SERWERZE 311
IMAGE — standardowe mapy odnośników obsługiwane po stronie serwera 312
ISMAP — alternatywny sposób tworzenia map odnośników obsługiwanych po stronie serwera 313
16.9 POLA UKRYTE 315
16.10 GRUPOWANIE ELEMENTÓW KONTROLNYCH 316
16.11 OKREŚLANIE KOLEJNOŚCI PORUSZANIA SIĘ POMIĘDZY ELEMENTAMI FORMULARZY 318
16.12 TESTOWY SERWER WWW 319
EchoServer 319
ThreadedEchoServer 321
NetworkServer 322
ROZDZIAŁ 17. UŻYCIE APLETÓW JAKO INTERFEJSU UŻYTKOWNIKA DLA SERWLETÓW 325
17.1 PRZESYŁANIE DANYCH METODĄ GET I WYŚWIETLANIE WYNIKOWEJ STRONY WWW 326
17.2 NARZĘDZIE KORZYSTAJĄCE Z WIELU SERWISÓW WYSZUKIWAWCZYCH 326
17.3 PRZESYŁANIE DANYCH METODĄ GET I BEZPOŚREDNIE PRZETWARZANIE WYNIKÓW (TUNELOWANIE HTTP) 329
Odczyt danych binarnych lub danych ASCII 330
Odczyt serializowanych struktur danych 331
Po stronie klienta 331
Po stronie serwera 332
17.4 PRZEGLĄDARKA ZAPYTAŃ WYKORZYSTUJĄCA SERIALIZACJĘ OBIEKTÓW I TUNELOWANIE 333
17.5 PRZESYŁANIE DANYCH METODĄ POST I BEZPOŚREDNIE PRZETWARZANIE DANYCH (TUNELOWANIE HTTP) 338
17.6 APLET PRZESYŁAJĄCY DANE METODĄ POST 340
17.7 POMIJANIE SERWERA HTTP 344
ROZDZIAŁ 18. JDBC ORAZ ZARZĄDZANIE PULAMI POŁĄCZEŃ 346
18.1 PODSTAWOWE ETAPY WYKORZYSTANIA JDBC 346
Załadowanie sterownika 347
Określenie adresu URL połączenia 347
Nawiązanie połączenia 348
Stworzenie polecenia 349
Wykonanie zapytania 349
Przetworzenie wyników 349
Zamknięcie połączenia 350
18.2 PROSTY PRZYKŁAD WYKORZYSTANIA JDBC 350
18.3 NARZĘDZIA UŁATWIAJĄCE KORZYSTANIE Z JDBC 354
18.4 WYKORZYSTANIE NARZĘDZI UŁATWIAJĄCYCH OBSŁUGĘ JDBC 360
18.5 INTERAKTYWNA PRZEGLĄDARKA ZAPYTAŃ 363
Kod przeglądarki zapytań 366
18.6 PRZYGOTOWANE POLECENIA (PREKOMPILOWANE ZAPYTANIA) 370
18.7 ZARZĄDZANIE PULAMI POŁĄCZEŃ 373
18.8 ZARZĄDZANIE PULAMI POŁĄCZEŃ: STUDIUM ZAGADNIENIA 377
18.9 WSPÓŁUŻYTKOWANIE PUL POŁĄCZEŃ 382
Współużytkowanie pul połączeń przy wykorzystaniu kontekstu serwletu 382
Współużytkowanie pul połączeń przy wykorzystaniu klas „singleton” 383
DODATEK A. KRÓTKI PRZEWODNIK PO SERWLETACH I JSP 384
A.1 PREZENTACJA SERWLETÓW I JSP 384
Zalety serwletów 384
Zalety JSP 384
Bezpłatnie dostępne oprogramowanie do obsługi serwletów i JSP 384
Dokumentacja 385
Kompilacja serwletów: informacje podawane w zmiennej środowiskowej CLASSPATH 385
Standardowe katalogi serwera Tomcat 3.0 385
Standardowe katalogi serwera Tomcat 3.1 385
Standardowe katalogi serwera JSWDK 1.0.1 385
Standardowe katalogi serwera Java Web Server 2.0 385
A.2 PIERWSZE SERWLETY 386
Prosty serwlet 386
Instalacja serwletów 386
Uruchamianie serwletów 386
Cykl życiowy serwletów 386
A.3 OBSŁUGA ŻĄDAŃ: DANE PRZESYŁANE Z FORMULARZY 387
Odczyt parametrów 387
Przykład serwletu 387
Przykład formularza 388
Filtrowanie znaków specjalnych HTML 388
A.4 OBSŁUGA ŻĄDAŃ: NAGŁÓWKI ŻĄDAŃ HTTP 388
Metody odczytujące nagłówki żądania 388
Inne informacje o żądaniu 389
Najczęściej używane nagłówki żądań protokołu HTTP 1.1 389
A.5 DOSTĘP DO STANDARDOWYCH ZMIENNYCH CGI 390
Możliwości, które nie zostały opisane gdzie indziej 390
Odpowiedniki zmiennych CGI dostępne w serwletach 390
A.6 GENERACJA ODPOWIEDZI: KODY STATUSU HTTP 391
Format odpowiedzi HTTP 391
Metody określające kod statusu 391
Kategorie kodów statusu 391
Najczęściej wykorzystywane kody statusu protokołu HTTP 1.1 391
A.7 GENERACJA ODPOWIEDZI: NAGŁÓWKI ODPOWIEDZI PROTOKOŁU HTTP 392
Generacja dowolnych nagłówków 392
Generacja najczęściej używanych nagłówków 392
Najczęściej używane nagłówki odpowiedzi protokołu HTTP 1.1 392
Generacja obrazów GIF przez serwlety 393
A.8 OBSŁUGA COOKIES 394
Typowe zastosowania cookies 394
Problemy napotykane przy stosowaniu cookies 394
Ogólny sposób użycia cookies 394
Metod do obsługi cookies 394
A.9 ŚLEDZENIE SESJI 395
Pobieranie informacji o sesji — getValue 395
Kojarzenie informacji z sesją — putValue 395
Metody interfejsu HttpSession 396
Kodowanie adresów URL 396
A.10 ELEMENTY SKRYPTOWE JSP 397
Typy elementów skryptowych 397
Tekst szablonu 397
Predefiniowane zmienne 397
A.11 DYREKTYWA PAGE: OKREŚLANIE POSTACI GENEROWANYCH SERWLETÓW 398
Atrybut import 398
Atrybut contentType 398
Przykład użycia atrybutu contentType 398
Przykład wykorzystania metody setContentType 398
Atrybut isThreadSafe 399
Atrybut session 399
Atrybut buffer 399
Atrybut autoflush 399
Atrybut extends 400
Atrybut info 400
Atrybut errorPage 400
Atrybut isErrorPage 400
Atrybut language 400
Zapis XML-owy 400
A.12 DOŁĄCZANIE PLIKÓW I APLETÓW DO DOKUMENTÓW JSP 400
Dołączanie plików w czasie przekształcania strony 400
Dołączanie plików w czasie obsługi żądania 401
Aplety obsługiwane przy użyciu Java Plug-In: Prosty przypadek 401
Atrybuty znacznika jsp:plugin 401
Parametry określane w kodzie HTML: jsp:param 401
Tekst alternatywny 402
A.13 WYKORZYSTANIE KOMPONENTÓW JAVABEANS W DOKUMENTACH JSP 402
Podstawowe wymagania jakie należy spełnić by klasa była komponentem 402
Podstawowe sposoby użycia komponentów 402
Kojarzenie właściwości z parametrami przesłanymi w żądaniu 402
Wspólne wykorzystywanie komponentów: Atrybut scope znacznika akcji jsp:useBean 403
Warunkowe tworzenie komponentów 403
A.14 TWORZENIE BIBLIOTEK ZNACZNIKÓW 403
Klasa obsługi znacznika 403
Plik deskryptora biblioteki znaczników 404
Plik JSP 404
Przypisywanie atrybutów znacznikom 404
Dołączanie zawartości znacznika 404
Opcjonalne dołączanie zawartości znacznika 404
Przetwarzanie zawartości znacznika 405
Wielokrotne dołączanie lub przetwarzanie zawartości znacznika 405
Stosowanie zagnieżdżonych znaczników 405
A.15 INTEGRACJA SERWLETÓW I DOKUMENTÓW JSP 405
Opis ogólny 405
Składnia służąca do przekazania żądania 405
Przekazywanie żądań do zwyczajnych dokumentów HTML 405
Tworzenie globalnie dostępnych komponentów JavaBeans 406
Tworzenie komponentów JavaBeans dostępnych w sesji 406
Interpretacja względnych adresów URL na stronie docelowej 406
Alternatywne sposoby pobierania obiektu RequestDispatcher (wyłącznie Java Servlet 2.2) 406
Dołączenie danych statycznych lub dynamicznych 406
Przekazywanie żądań ze stron JSP 406
A.16 STOSOWANIE FORMULARZY HTML 407
Element FORM 407
Pola tekstowe 407
Pola hasła 407
Obszary tekstowe 407
Przyciski SUBMIT 407
Alternatywna postać przycisków SUBMIT 408
Przyciski RESET 408
Alternatywna postać przycisków RESET 408
Przyciski JavaScript 408
Alternatywna postać przycisków JavaScript 408
Pola wyboru 408
Przyciski opcji 409
Listy rozwijane 409
Elementy kontrolne umożliwiające przesyłanie plików na serwer 409
Mapy odnośników obsługiwane na serwerze 409
Pola ukryte 409
Możliwości dostępne w Internet Explorerze 409
A.17 WYKORZYSTANIE APLETÓW JAKO INTERFEJSU UŻYTKOWNIKA DLA SERWLETÓW 410
Przesyłanie danych metodą GET i wyświetlanie strony wynikowej 410
Przesyłanie danych metodą GET i bezpośrednie przetwarzanie wyników (tunelowanie HTTP) 410
Przesyłanie serializowanych danych: Kod apletu 411
Przesyłanie serializowanych danych: Kod serwletu 411
Przesyłanie danych metodą POST i bezpośrednie przetwarzanie wyników (tunelowanie HTTP) 412
Pomijanie serwera HTTP 413
A.18 JDBC I ZARZĄDZANIE PULAMI POŁĄCZEŃ Z BAZAMI DANYCH 413
Podstawowe etapy wykorzystania JDBC 413
Narzędzia obsługi baz danych 414
Przygotowane polecenia (prekompilowane zapytania) 415
Etapy implementacji puli połączeń 415
PODZIĘKOWANIA 11
O AUTORZE 11
WPROWADZENIE 12
PRAWDZIWY KOD DLA PRAWDZIWYCH PROGRAMISTÓW 13
W JAKI SPOSÓB ZORGANIZOWANA JEST TA KSIĄŻKA 13
Część 1.: Serwlety 14
Część 2.: JavaServer Pages 15
Część 3.: Technologie pomocnicze 16
ZASTOSOWANE KONWENCJE 16
Podstawowa metoda 16
O WITRYNIE WWW 17
ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SERWLETACH I JAVA SERVER PAGES 18
1.1 SERWLETY 18
1.2 ZALETY SERWLETÓW W PORÓWNANIU Z „TRADYCYJNYMI” PROGRAMAMI CGI 19
Efektywność 19
Wygoda 20
Duże możliwości 20
Przenośność 20
Bezpieczeństwo 20
Niewielkie koszty 21
1.3 JAVA SERVER PAGES 21
1.4 ZALETY JSP 22
W porównaniu z Active Server Pages (ASP) 22
W porównaniu z PHP 22
W porównaniu z serwletami 22
W porównaniu z Server-Side Includes (SSI) 22
W porównaniu z językiem JavaScript 23
W porównaniu ze statycznym kodem HTML 23
1.5 INSTALACJA I KONFIGURACJA 23
Zdobywanie oprogramowania do obsługi serwletów i dokumentów JSP 23
Zapamiętaj adres lub zainstaluj dokumentację Java Servlet oraz JSP API 25
Wskaż klasy używane przez kompilator Javy 25
Unix (C Shell) 26
Windows 26
Umieść klasy w pakietach 26
Skonfiguruj serwer 26
Numer portu 27
Zmienna środowiskowa JAVA_HOME 27
Ustawienia pamięci systemu DOS 27
Ustawienie CR/LF w serwerze Tomcat 3.0 27
Uruchomienie serwera 28
Kompilacja i instalacja własnych serwletów 28
Tomcat 28
Tomcat 3.1 28
JSWDK 29
Java Web Server 2.0 29
ROZDZIAŁ 2. PIERWSZE SERWLETY 30
2.1 PODSTAWOWA STRUKTURA SERWLETÓW 30
2.2 PROSTY SERWLET GENERUJĄCY ZWYCZAJNY TEKST 31
Kompilacja i instalacja serwletów 32
Wywoływanie serwletów 33
2.3 SERWLETY GENERUJĄCE KOD HTML 34
2.4 UMIESZCZANIE SERWLETÓW W PAKIETACH 35
Tworzenie serwletów należących do konkretnego pakietu 36
Kompilacja serwletów należących do pakietów 36
Wywoływanie serwletów należących do pakietów 38
2.5 PROSTE NARZĘDZIA POMOCNE PRZY TWORZENIU DOKUMENTÓW HTML 38
2.6 CYKL ŻYCIOWY SERWLETÓW 40
Metoda init 40
Metoda service 41
Metody doGet, doPost oraz doXxx 42
Interfejs SingleThreadModel 43
Metoda destroy 43
2.7 PRZYKŁAD UŻYCIA PARAMETRÓW INICJALIZACYJNYCH 44
2.8 PRZYKŁAD WYKORZYSTANIA INICJALIZACJI SERWLETU I DATY MODYFIKACJI STRONY 47
2.9 TESTOWANIE SERWLETÓW 50
2.10 WEBCLIENT: INTERAKTYWNA WYMIANA INFORMACJI Z SERWEREM WWW 52
WebClient 52
HttpClient 55
NetworkClient 56
SocketUtil 57
CloseableFrame 57
LabeledTextField 58
Interruptible 59
ROZDZIAŁ 3. OBSŁUGA ŻĄDAŃ: DANE PRZESYŁANE Z FORMULARZY 60
3.1 ZNACZENIE INFORMACJI PRZESYŁANYCH Z FORMULARZY 60
3.2 ODCZYTYWANIE DANYCH FORMULARZY W SERWLETACH 61
3.3 PRZYKŁAD: ODCZYT TRZECH KONKRETNYCH PARAMETRÓW 61
3.4 PRZYKŁAD: ODCZYT WSZYSTKICH PARAMETRÓW 64
3.5 SERWIS REJESTRACJI ŻYCIORYSÓW 67
3.6 FILTROWANIE ŁAŃCUCHÓW W POSZUKIWANIU ZNAKÓW SPECJALNYCH HTML 76
Implementacja filtrowania 76
Przykład 77
ROZDZIAŁ 4. OBSŁUGA ŻĄDAŃ: NAGŁÓWKI ŻĄDAŃ HTTP 80
4.1 ODCZYTYWANIE WARTOŚCI NAGŁÓWKÓW ŻĄDANIA W SERWLETACH 80
4.2 WYŚWIETLANIE WSZYSTKICH NAGŁÓWKÓW 82
4.3 NAGŁÓWKI ŻĄDAŃ PROTOKOŁU HTTP 1.1 84
4.4 PRZESYŁANIE SKOMPRESOWANYCH STRON WWW 88
4.5 OGRANICZANIE DOSTĘPU DO STRON WWW 90
ROZDZIAŁ 5. DOSTĘP DO STANDARDOWYCH ZMIENNYCH CGI 95
5.1 ODPOWIEDNIKI ZMIENNYCH CGI DOSTĘPNE W SERWLETACH 95
5.2 SERWLET WYŚWIETLAJĄCY WARTOŚCI ZMIENNYCH CGI 98
ROZDZIAŁ 6. GENERACJA ODPOWIEDZI: KODY STATUSU 100
6.1 OKREŚLANIE KODÓW STATUSU 100
6.2 KODY STATUSU PROTOKOŁU HTTP 1.1 ORAZ ICH PRZEZNACZENIE 102
6.3 INTERFEJS UŻYTKOWNIKA OBSŁUGUJĄCY RÓŻNE SERWISY WYSZUKIWAWCZE 109
ROZDZIAŁ 7. GENERACJA ODPOWIEDZI: NAGŁÓWKI ODPOWIEDZI HTTP 114
7.1 OKREŚLANIE NAGŁÓWKÓW ODPOWIEDZI Z POZIOMU SERWLETÓW 114
7.2 NAGŁÓWKI ODPOWIEDZI PROTOKOŁU HTTP 1.1 ORAZ ICH ZNACZENIE 116
Accept-Ranges 116
Age 116
Allow 116
Cache-Control 116
Connection 117
Content-Encoding 117
Content-Language 118
Content-Length 118
Content-Location 118
Content-MD5 118
Content-Range 118
Content-Type 118
Date 120
ETag 120
Expires 120
Last-Modified 120
Location 120
Pragma 121
Refresh 121
Retry-After 121
Server 122
Set-Cookie 122
Trailer 122
Transfer-Encoding 122
Upgrade 122
Vary 122
Via 122
Warning 122
WWW-Authenticate 123
7.3 TRWAŁE PRZECHOWYWANIE STANU SERWLETU I AUTOMATYCZNE ODŚWIEŻANIE STRON 123
7.4 STOSOWANIE TRWAŁYCH POŁĄCZEŃ HTTP 130
7.5 WYKORZYSTANIE SERVLETÓW DO GENERACJI OBRAZÓW GIF 133
ROZDZIAŁ 8. OBSŁUGA COOKIES 141
8.1 KORZYŚCI STOSOWANIA COOKIES 141
Identyfikacja użytkowników podczas trwania sesji na witrynach komercyjnych 141
Unikanie konieczności podawania nazwy użytkownika i hasła 142
Dostosowywanie witryny 142
Dobór reklam 142
8.2 NIEKTÓRE PROBLEMY ZWIĄZANE ZE STOSOWANIEM COOKIES 142
8.3 Narzędzia obsługi cookies dostępne w servletach 143
Tworzenie cookies 144
Atrybuty cookies 144
Umieszczanie cookies w nagłówkach odpowiedzi 146
Odczytywanie cookies nadesłanych przez przeglądarkę 146
8.4 PRZYKŁADY GENERACJI I ODCZYTYWANA COOKIES 146
8.5 PROSTE NARZĘDZIA DO OBSŁUGI COOKIES 149
Odnajdywanie cookie o określonej nazwie 150
Tworzenie cookies o długim czasie istnienia 150
8.6 INTERFEJS WYSZUKIWAWCZY Z MOŻLIWOŚCIĄ ZAPAMIĘTYWANIA USTAWIEŃ 151
ROZDZIAŁ 9. ŚLEDZENIE SESJI 156
9.1 POTRZEBA ŚLEDZENIA SESJI 156
Cookies 156
Przepisywanie adresów URL 157
Ukryte pola formularzy 157
Śledzenie sesji w serwletach 157
9.2 NARZĘDZIA PROGRAMISTYCZNE DO ŚLEDZENIA SESJI 158
Pobieranie obiektu HttpSession skojarzonego z bieżącym żądaniem 158
Pobieranie informacji skojarzonych z sesją 158
Kojarzenie informacji z sesją 160
Zakańczanie sesji 161
Kodowanie adresów URL przesyłanych do przeglądarki 161
9.3 SERVLET GENERUJĄCY INDYWIDUALNY LICZNIK ODWIEDZIN DLA KAŻDEGO UŻYTKOWNIKA 162
9.4 INTERNETOWY SKLEP WYKORZYSTUJĄCY KOSZYKI I ŚLEDZENIE SESJI 164
Tworzenie interfejsu użytkownika 165
Obsługa zamówień 169
To czego nie widać: Implementacja koszyka i katalogu towarów 172
ROZDZIAŁ 10. ELEMENTY SKRYPTOWE JSP 178
10.1 ELEMENTY SKRYPTOWE 180
Tekst szablonu 180
10.2 WYRAŻENIA JSP 180
Predefiniowane zmienne 180
Składnia XML stosowana w wyrażeniach 181
Zastosowanie wyrażeń jako wartości atrybutów 181
Przykład 182
10.3 SKRYPTLETY JSP 183
Wykorzystanie skryptletów do warunkowego wykonania fragmentu strony JSP 185
Specjalna składnia skryptletów 186
10.4 DEKLARACJE JSP 186
Specjalna składnia zapisu deklaracji 187
10.5 PREDEFINIOWANE ZMIENNE 187
ROZDZIAŁ 11. DYREKTYWA PAGE: STRUKTURALIZACJA GENEROWANYCH SERWLETÓW 190
11.1 ATRYBUT IMPORT 190
Katalogi służące do przechowywania własnych klas 191
Przykład 192
11.2 ATRYBUT CONTENTTYPE 193
Generacja zwyczajnych dokumentów tekstowych 194
Generacja arkuszy kalkulacyjnych programu Microsoft Excel 195
11.3 ATRYBUT ISTHREADSAFE 198
11.4 ATRYBUT SESSION 200
11.5 ATRYBUT BUFFER 200
11.6 ATRYBUT AUTOFLUSH 200
11.7 ATRYBUT EXTENDS 200
11.8 ATRYBUT INFO 201
11.9 ATRYBUT ERRORPAGE 201
11.10 ATRYBUT ISERRORPAGE 201
11.11 ATRYBUT LANGUAGE 203
11.12 SKŁADNIA XML ZAPISU DYREKTYW 204
ROZDZIAŁ 12. DOŁĄCZANIE PLIKÓW I APLETÓW DO DOKUMENTÓW JSP 205
12.1 DOŁĄCZANIE PLIKÓW W CZASIE PRZEKSZTAŁCANIA STRONY 205
12.2 DOŁĄCZANIE PLIKÓW PODCZAS OBSŁUGI ŻĄDAŃ 207
DOŁĄCZANIE APLETÓW KORZYSTAJĄCYCH Z JAVA PLUG-IN 209
Znacznik akcji jsp:plugin 210
Znaczniki akcji jsp:param oraz jsp:params 212
Znacznik akcji jsp:fallback 213
Przykład: Generacja tekstu z cieniem 213
ROZDZIAŁ 13. WYKORZYSTANIE KOMPONENTÓW JAVABEANS W DOKUMENTACH JSP 219
13.1 PODSTAWOWE SPOSOBY UŻYCIA KOMPONENTÓW 220
Dostęp do właściwości komponentów 221
Określanie właściwości komponentów — prosty przypadek 222
Instalacja klas komponentów 222
13.2 PRZYKŁAD: STRINGBEAN 223
13.3 OKREŚLANIE WARTOŚCI WŁAŚCIWOŚCI KOMPONENTÓW 224
Kojarzenie właściwości z parametrami wejściowymi 227
Automatyczna konwersja typów 228
Kojarzenie wszystkich właściwości z parametrami wejściowymi 229
13.4 WSPÓLNE WYKORZYSTYWANIE KOMPONENTÓW 230
Warunkowe tworzenie komponentów 231
ROZDZIAŁ 14. TWORZENIE BIBLIOTEK ZNACZNIKÓW 234
14.1 ELEMENTY TWORZĄCE BIBLIOTEKĘ ZNACZNIKÓW 235
Klasa obsługi znacznika 235
Plik deskryptora biblioteki znaczników 236
Plik JSP 237
14.2 DEFINIOWANIE PROSTYCH ZNACZNIKÓW 238
Klasa obsługi znacznika 238
Plik deskryptora biblioteki znaczników 239
Plik JSP 240
14.3 PRZYPISYWANIE ATRYBUTÓW ZNACZNIKOM 241
Klasa obsługi znacznika 242
Plik deskryptora biblioteki znaczników 243
Plik JSP 244
14.4 DOŁĄCZANIE ZAWARTOŚCI ZNACZNIKA 245
Klasa obsługi znacznika 245
Plik deskryptora biblioteki znaczników 247
Plik JSP 248
14.5 OPCJONALNE DOŁĄCZANIE ZAWARTOŚCI ZNACZNIKA 249
Klasa obsługi znacznika 249
Plik deskryptora biblioteki znaczników 250
Plik JSP 251
14.6 MANIPULOWANIE ZAWARTOŚCIĄ ZNACZNIKA 253
Klasa obsługi znacznika 253
Plik deskryptora biblioteki znaczników 254
Plik JSP 255
14.7 WIELOKROTNE DOŁĄCZANIE LUB OBSŁUGA ZAWARTOŚCIĄ ZNACZNIKA 256
Klasa obsługi znacznika 257
Plik deskryptora biblioteki znaczników 257
Plik JSP 258
14.8 STOSOWANIE ZNACZNIKÓW ZAGNIEŻDŻONYCH 259
Klasy obsługi znaczników 260
Plik deskryptora biblioteki znaczników 263
Plik JSP 265
ROZDZIAŁ 15. INTEGRACJA SERWLETÓW I DOKUMENTÓW JSP 267
15.1 PRZEKAZYWANIE ŻĄDAŃ 267
Użycie zasobów statycznych 268
Przekazywanie informacji do strony docelowej 269
Interpretacja względnych adresów URL przez stronę docelową 270
Inne sposoby pobierania obiektu RequestDispatcher 271
15.2 PRZYKŁAD: INTERNETOWE BIURO PODRÓŻY 271
15.3 DOŁĄCZANIE DANYCH STATYCZNYCH BĄDŹ DYNAMICZNYCH 282
15.4 PRZYKŁAD: PREZENTACJA NIEPRZETWORZONYCH WYNIKÓW ZWRACANYCH PRZEZ SERWLETY LUB STRONY JSP 284
15.5 PRZEKAZYWANIE ŻĄDAŃ ZE STRON JSP 287
ROZDZIAŁ 16. FORMULARZE HTML 289
16.1 JAK PRZESYŁANE SĄ DANE Z FORMULARZY HTML 289
16.2 ELEMENT FORM 293
16.3 TEKSTOWE ELEMENTY KONTROLNE 297
Pola tekstowe 297
VALUE 298
Pola hasła 299
Wielowierszowe pola tekstowe 299
16.4 PRZYCISKI 301
Przycisk SUBMIT 301
Przyciski RESET 303
Przyciski JavaScript 304
16.5 POLA WYBORU I PRZYCISKI OPCJI 305
Pola wyboru 305
Przyciski opcji 306
16.6 LISTY I LISTY ROZWIJANE 307
16.7 ELEMENT KONTROLNY SŁUŻĄCY DO PRZESYŁANIA PLIKÓW 310
16.8 MAPY ODNOŚNIKÓW OBSŁUGIWANE NA SERWERZE 311
IMAGE — standardowe mapy odnośników obsługiwane po stronie serwera 312
ISMAP — alternatywny sposób tworzenia map odnośników obsługiwanych po stronie serwera 313
16.9 POLA UKRYTE 315
16.10 GRUPOWANIE ELEMENTÓW KONTROLNYCH 316
16.11 OKREŚLANIE KOLEJNOŚCI PORUSZANIA SIĘ POMIĘDZY ELEMENTAMI FORMULARZY 318
16.12 TESTOWY SERWER WWW 319
EchoServer 319
ThreadedEchoServer 321
NetworkServer 322
ROZDZIAŁ 17. UŻYCIE APLETÓW JAKO INTERFEJSU UŻYTKOWNIKA DLA SERWLETÓW 325
17.1 PRZESYŁANIE DANYCH METODĄ GET I WYŚWIETLANIE WYNIKOWEJ STRONY WWW 326
17.2 NARZĘDZIE KORZYSTAJĄCE Z WIELU SERWISÓW WYSZUKIWAWCZYCH 326
17.3 PRZESYŁANIE DANYCH METODĄ GET I BEZPOŚREDNIE PRZETWARZANIE WYNIKÓW (TUNELOWANIE HTTP) 329
Odczyt danych binarnych lub danych ASCII 330
Odczyt serializowanych struktur danych 331
Po stronie klienta 331
Po stronie serwera 332
17.4 PRZEGLĄDARKA ZAPYTAŃ WYKORZYSTUJĄCA SERIALIZACJĘ OBIEKTÓW I TUNELOWANIE 333
17.5 PRZESYŁANIE DANYCH METODĄ POST I BEZPOŚREDNIE PRZETWARZANIE DANYCH (TUNELOWANIE HTTP) 338
17.6 APLET PRZESYŁAJĄCY DANE METODĄ POST 340
17.7 POMIJANIE SERWERA HTTP 344
ROZDZIAŁ 18. JDBC ORAZ ZARZĄDZANIE PULAMI POŁĄCZEŃ 346
18.1 PODSTAWOWE ETAPY WYKORZYSTANIA JDBC 346
Załadowanie sterownika 347
Określenie adresu URL połączenia 347
Nawiązanie połączenia 348
Stworzenie polecenia 349
Wykonanie zapytania 349
Przetworzenie wyników 349
Zamknięcie połączenia 350
18.2 PROSTY PRZYKŁAD WYKORZYSTANIA JDBC 350
18.3 NARZĘDZIA UŁATWIAJĄCE KORZYSTANIE Z JDBC 354
18.4 WYKORZYSTANIE NARZĘDZI UŁATWIAJĄCYCH OBSŁUGĘ JDBC 360
18.5 INTERAKTYWNA PRZEGLĄDARKA ZAPYTAŃ 363
Kod przeglądarki zapytań 366
18.6 PRZYGOTOWANE POLECENIA (PREKOMPILOWANE ZAPYTANIA) 370
18.7 ZARZĄDZANIE PULAMI POŁĄCZEŃ 373
18.8 ZARZĄDZANIE PULAMI POŁĄCZEŃ: STUDIUM ZAGADNIENIA 377
18.9 WSPÓŁUŻYTKOWANIE PUL POŁĄCZEŃ 382
Współużytkowanie pul połączeń przy wykorzystaniu kontekstu serwletu 382
Współużytkowanie pul połączeń przy wykorzystaniu klas „singleton” 383
DODATEK A. KRÓTKI PRZEWODNIK PO SERWLETACH I JSP 384
A.1 PREZENTACJA SERWLETÓW I JSP 384
Zalety serwletów 384
Zalety JSP 384
Bezpłatnie dostępne oprogramowanie do obsługi serwletów i JSP 384
Dokumentacja 385
Kompilacja serwletów: informacje podawane w zmiennej środowiskowej CLASSPATH 385
Standardowe katalogi serwera Tomcat 3.0 385
Standardowe katalogi serwera Tomcat 3.1 385
Standardowe katalogi serwera JSWDK 1.0.1 385
Standardowe katalogi serwera Java Web Server 2.0 385
A.2 PIERWSZE SERWLETY 386
Prosty serwlet 386
Instalacja serwletów 386
Uruchamianie serwletów 386
Cykl życiowy serwletów 386
A.3 OBSŁUGA ŻĄDAŃ: DANE PRZESYŁANE Z FORMULARZY 387
Odczyt parametrów 387
Przykład serwletu 387
Przykład formularza 388
Filtrowanie znaków specjalnych HTML 388
A.4 OBSŁUGA ŻĄDAŃ: NAGŁÓWKI ŻĄDAŃ HTTP 388
Metody odczytujące nagłówki żądania 388
Inne informacje o żądaniu 389
Najczęściej używane nagłówki żądań protokołu HTTP 1.1 389
A.5 DOSTĘP DO STANDARDOWYCH ZMIENNYCH CGI 390
Możliwości, które nie zostały opisane gdzie indziej 390
Odpowiedniki zmiennych CGI dostępne w serwletach 390
A.6 GENERACJA ODPOWIEDZI: KODY STATUSU HTTP 391
Format odpowiedzi HTTP 391
Metody określające kod statusu 391
Kategorie kodów statusu 391
Najczęściej wykorzystywane kody statusu protokołu HTTP 1.1 391
A.7 GENERACJA ODPOWIEDZI: NAGŁÓWKI ODPOWIEDZI PROTOKOŁU HTTP 392
Generacja dowolnych nagłówków 392
Generacja najczęściej używanych nagłówków 392
Najczęściej używane nagłówki odpowiedzi protokołu HTTP 1.1 392
Generacja obrazów GIF przez serwlety 393
A.8 OBSŁUGA COOKIES 394
Typowe zastosowania cookies 394
Problemy napotykane przy stosowaniu cookies 394
Ogólny sposób użycia cookies 394
Metod do obsługi cookies 394
A.9 ŚLEDZENIE SESJI 395
Pobieranie informacji o sesji — getValue 395
Kojarzenie informacji z sesją — putValue 395
Metody interfejsu HttpSession 396
Kodowanie adresów URL 396
A.10 ELEMENTY SKRYPTOWE JSP 397
Typy elementów skryptowych 397
Tekst szablonu 397
Predefiniowane zmienne 397
A.11 DYREKTYWA PAGE: OKREŚLANIE POSTACI GENEROWANYCH SERWLETÓW 398
Atrybut import 398
Atrybut contentType 398
Przykład użycia atrybutu contentType 398
Przykład wykorzystania metody setContentType 398
Atrybut isThreadSafe 399
Atrybut session 399
Atrybut buffer 399
Atrybut autoflush 399
Atrybut extends 400
Atrybut info 400
Atrybut errorPage 400
Atrybut isErrorPage 400
Atrybut language 400
Zapis XML-owy 400
A.12 DOŁĄCZANIE PLIKÓW I APLETÓW DO DOKUMENTÓW JSP 400
Dołączanie plików w czasie przekształcania strony 400
Dołączanie plików w czasie obsługi żądania 401
Aplety obsługiwane przy użyciu Java Plug-In: Prosty przypadek 401
Atrybuty znacznika jsp:plugin 401
Parametry określane w kodzie HTML: jsp:param 401
Tekst alternatywny 402
A.13 WYKORZYSTANIE KOMPONENTÓW JAVABEANS W DOKUMENTACH JSP 402
Podstawowe wymagania jakie należy spełnić by klasa była komponentem 402
Podstawowe sposoby użycia komponentów 402
Kojarzenie właściwości z parametrami przesłanymi w żądaniu 402
Wspólne wykorzystywanie komponentów: Atrybut scope znacznika akcji jsp:useBean 403
Warunkowe tworzenie komponentów 403
A.14 TWORZENIE BIBLIOTEK ZNACZNIKÓW 403
Klasa obsługi znacznika 403
Plik deskryptora biblioteki znaczników 404
Plik JSP 404
Przypisywanie atrybutów znacznikom 404
Dołączanie zawartości znacznika 404
Opcjonalne dołączanie zawartości znacznika 404
Przetwarzanie zawartości znacznika 405
Wielokrotne dołączanie lub przetwarzanie zawartości znacznika 405
Stosowanie zagnieżdżonych znaczników 405
A.15 INTEGRACJA SERWLETÓW I DOKUMENTÓW JSP 405
Opis ogólny 405
Składnia służąca do przekazania żądania 405
Przekazywanie żądań do zwyczajnych dokumentów HTML 405
Tworzenie globalnie dostępnych komponentów JavaBeans 406
Tworzenie komponentów JavaBeans dostępnych w sesji 406
Interpretacja względnych adresów URL na stronie docelowej 406
Alternatywne sposoby pobierania obiektu RequestDispatcher (wyłącznie Java Servlet 2.2) 406
Dołączenie danych statycznych lub dynamicznych 406
Przekazywanie żądań ze stron JSP 406
A.16 STOSOWANIE FORMULARZY HTML 407
Element FORM 407
Pola tekstowe 407
Pola hasła 407
Obszary tekstowe 407
Przyciski SUBMIT 407
Alternatywna postać przycisków SUBMIT 408
Przyciski RESET 408
Alternatywna postać przycisków RESET 408
Przyciski JavaScript 408
Alternatywna postać przycisków JavaScript 408
Pola wyboru 408
Przyciski opcji 409
Listy rozwijane 409
Elementy kontrolne umożliwiające przesyłanie plików na serwer 409
Mapy odnośników obsługiwane na serwerze 409
Pola ukryte 409
Możliwości dostępne w Internet Explorerze 409
A.17 WYKORZYSTANIE APLETÓW JAKO INTERFEJSU UŻYTKOWNIKA DLA SERWLETÓW 410
Przesyłanie danych metodą GET i wyświetlanie strony wynikowej 410
Przesyłanie danych metodą GET i bezpośrednie przetwarzanie wyników (tunelowanie HTTP) 410
Przesyłanie serializowanych danych: Kod apletu 411
Przesyłanie serializowanych danych: Kod serwletu 411
Przesyłanie danych metodą POST i bezpośrednie przetwarzanie wyników (tunelowanie HTTP) 412
Pomijanie serwera HTTP 413
A.18 JDBC I ZARZĄDZANIE PULAMI POŁĄCZEŃ Z BAZAMI DANYCH 413
Podstawowe etapy wykorzystania JDBC 413
Narzędzia obsługi baz danych 414
Przygotowane polecenia (prekompilowane zapytania) 415
Etapy implementacji puli połączeń 415