Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00114 009414 11231315 na godz. na dobę w sumie
Java Servlet i Java Server Pages - książka
Java Servlet i Java Server Pages - książka
Autor: Liczba stron: 536
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-603-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> jsp i javaservlet - programowanie
Porównaj ceny (książka, ebook, audiobook).
Niniejsza książka przeznaczona jest dla prawdziwych programistów. Jej celem nie jest przedstawienie potencjału internetowego handlu ani sposobów, w jaki aplikacje internetowe mogą zrewolucjonizować przedsiębiorstwo. Jest to praktyczna książka przeznaczona dla programistów, którzy już doskonale rozumieją, jak istotne jest tworzenie dynamicznych witryn WWW. Zadaniem niniejszej książki jest przedstawienie poprawnego sposobu prowadzenia takiej pracy. Prezentując metody tworzenia dynamicznych witryn WWW autor starał się uwzględnić najważniejsze używane techniki i opisać najczęściej napotykane problemy. Jednocześnie przedstawiono bardzo dużo praktycznych zastosowań (na przykład -- ponad sto klas Javy). Podano szczegółowe przykłady dla wszystkich najważniejszych i najczęściej wykorzystywanych możliwości, a także zamieszczono podsumowania przedstawiające również rzadziej wykorzystywane zastosowania i wskazano dostępne w Internecie źródła informacji dotyczące interfejsów programistycznych (API) umożliwiających wykorzystanie tych najrzadziej stosowanych możliwości.

Nie ma tu wielu pobieżnych opisów licznych technologii. Nie było zamierzeniem autora, aby niniejsza książka stała się ostatecznym źródłem informacji na wszystkie omawiane w niej tematy. Są to zagadnienia bardzo obszerne. Przykładowo, istnieje kilka książek o porównywalnej objętości poświęconych wyłącznie JDBC. Należy podkreślić, że poszczególne zagadnienia zostały tutaj przedstawione na tyle szczegółowo, aby Czytelnik mógł samodzielnie rozpocząć tworzenie programów nadających się do praktycznego zastosowania. Jedynym warunkiem jest znajomość podstaw języka Java: jego zastosowania i wykorzystywania. W razie braku tych umiejętności Czytelnik powinien zaznajomić się z zasadami programowania w tym języku.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Java Servlet i Java Server Pages Autor: Marty Hall T‡umaczenie: Piotr Rajca ISBN: 83-7197-603-8 Tytu‡ orygina‡u: Format: B5, stron: 530 Core Servlets and JavaServer Pages Niniejsza ksi„¿ka przeznaczona jest dla prawdziwych programist(cid:243)w. Jej celem nie jest przedstawienie potencja‡u internetowego handlu ani sposob(cid:243)w, w jaki aplikacje internetowe mog„ zrewolucjonizowa(cid:230) przedsiŒbiorstwo. Jest to praktyczna ksi„¿ka przeznaczona dla programist(cid:243)w, kt(cid:243)rzy ju¿ doskonale rozumiej„, jak istotne jest tworzenie dynamicznych witryn WWW. Zadaniem niniejszej ksi„¿ki jest przedstawienie poprawnego sposobu prowadzenia takiej pracy. Prezentuj„c metody tworzenia dynamicznych witryn WWW autor stara‡ siŒ uwzglŒdni(cid:230) najwa¿niejsze u¿ywane techniki i opisa(cid:230) najczŒ(cid:156)ciej napotykane problemy. Jednocze(cid:156)nie przedstawiono bardzo du¿o praktycznych zastosowaæ (na przyk‡ad (cid:151) ponad sto klas Javy). Podano szczeg(cid:243)‡owe przyk‡ady dla wszystkich najwa¿niejszych i najczŒ(cid:156)ciej wykorzystywanych mo¿liwo(cid:156)ci, a tak¿e zamieszczono podsumowania przedstawiaj„ce r(cid:243)wnie¿ rzadziej wykorzystywane zastosowania i wskazano dostŒpne w Internecie (cid:159)r(cid:243)d‡a informacji dotycz„ce interfejs(cid:243)w programistycznych (API) umo¿liwiaj„cych wykorzystanie tych najrzadziej stosowanych mo¿liwo(cid:156)ci. Nie ma tu wielu pobie¿nych opis(cid:243)w licznych technologii. Nie by‡o zamierzeniem autora, aby niniejsza ksi„¿ka sta‡a siŒ ostatecznym (cid:159)r(cid:243)d‡em informacji na wszystkie omawiane w niej tematy. S„ to zagadnienia bardzo obszerne. Przyk‡adowo, istnieje kilka ksi„¿ek o(cid:160) por(cid:243)wnywalnej objŒto(cid:156)ci po(cid:156)wiŒconych wy‡„cznie JDBC. Nale¿y podkre(cid:156)li(cid:230), ¿e poszczeg(cid:243)lne zagadnienia zosta‡y tutaj przedstawione na tyle szczeg(cid:243)‡owo, aby Czytelnik m(cid:243)g‡ samodzielnie rozpocz„(cid:230) tworzenie program(cid:243)w nadaj„cych siŒ do praktycznego zastosowania. Jedynym warunkiem jest znajomo(cid:156)(cid:230) podstaw jŒzyka Java: jego zastosowania i wykorzystywania. W razie braku tych umiejŒtno(cid:156)ci Czytelnik powinien zaznajomi(cid:230) siŒ z zasadami programowania w tym jŒzyku. O Autorze .............................................................................................................13 Wprowadzenie .....................................................................................................15 Część I Serwlety 2.1 i 2.2 ...................................................r............. 23 Rozdział 1. Rozdział 2. Podstawowe informacje o serwletach i Java Server Pages ...............25 Serwlety ...................................................5...................................................5....................25 Zalety serwletów w porównaniu ze zwykłymi programami CGI...................................27 Efektywność ...................................................5...................................................5.......27 Wygoda ...................................................5...................................................5..............27 Duże możliwości ...................................................5...................................................528 Przenośność ...................................................5...................................................5........28 Bezpieczeństwo ...................................................5...................................................5..28 Niewielkie koszty ...................................................5..................................................29 Java Server Pages ...................................................5...................................................5.....29 Zalety JSP ...................................................5...................................................5............... ..30 W porównaniu z Active Server Pages (ASP)...................................................5........30 W porównaniu z PHP ...................................................5............................................30 W porównaniu z serwletami...................................................5..................................30 W porównaniu z Server-Side Includes (SSI) ...................................................5........31 W porównaniu z językiem JavaScript ...................................................5...................31 W porównaniu ze statycznym kodem HTML ...................................................5.......31 Instalacja i konfiguracja...................................................5...............................................32 Zdobywanie oprogramowania do obsługi serwletów i dokumentów JSP................32 Zapamiętaj adres lub zainstaluj dokumentację Java Servlet oraz JSP API..............34 Wskazanie klas używanych przez kompilator Javy .................................................34 Umieszczanie klasy w pakietach...................................................5...........................35 Konfiguracja serwera ...................................................5............................................36 Uruchomienie serwera...................................................5...........................................37 Kompilacja i instalacja własnych serwletów...................................................5.........37 Pierwsze serwlety ...........................................................................41 Podstawowa struktura serwletów ...................................................5................................41 Prosty serwlet generujący zwykły tekst...................................................5.......................43 Kompilacja i instalacja serwletów...................................................5.........................43 Wywoływanie serwletów ...................................................5......................................45 Serwlety generujące kod HTML ...................................................5.................................45 4 Java Servlet i Java Server Pages Umieszczanie serwletów w pakietach ...................................................5.........................47 Tworzenie serwletów należących do konkretnego pakietu ......................................48 Kompilacja serwletów należących do pakietów...................................................5....49 Wywoływanie serwletów należących do pakietów..................................................50 Proste narzędzia pomocne podczas tworzenia dokumentów HTML .............................51 Cykl istnienia serwletów...................................................5..............................................53 Metoda init ...................................................5...................................................5.........54 Metoda service ...................................................5...................................................5...55 Metody doGet, doPost oraz doXxx ...................................................5.......................56 Interfejs SingleThreadModel...................................................5.................................57 Metoda destroy ...................................................5...................................................5...57 Przykład zastosowania parametrów inicjalizacyjnych ...................................................558 Przykład wykorzystania inicjalizacji serwletu i daty modyfikacji strony ......................62 Testowanie serwletów ...................................................5.................................................64 WebClient: interaktywna wymiana informacji z serwerem WWW ...............................68 WebClient...................................................5...................................................5...........68 HttpClient ...................................................5...................................................5...........71 NetworkClient ...................................................5...................................................5....72 SocketUtil...................................................5...................................................5...........74 CloseableFrame ...................................................5...................................................5..74 LabeledTextField...................................................5...................................................575 Interruptible ...................................................5...................................................5........77 Obsługa żądań: dane przesyłane za pomocą formularzy ....................79 Znaczenie informacji przesyłanych za pomocą formularzy ...........................................79 Odczytywanie danych formularzy w serwletach...................................................5.........80 Przykład: odczytanie trzech konkretnych parametrów...................................................581 Przykład: odczytanie wszystkich parametrów...................................................5.............84 Serwis rejestracji życiorysów ...................................................5......................................87 Filtrowanie łańcuchów w poszukiwaniu znaków specjalnych HTML...........................97 Implementacja filtrowania...................................................5.....................................98 Przykład...................................................5...................................................5..............99 Obsługa żądań: nagłówki żądań HTTP............................................103 Odczytywanie wartości nagłówków żądania w serwletach..........................................104 Wyświetlanie wszystkich nagłówków...................................................5.......................105 Nagłówki żądań protokołu HTTP 1.1...................................................5........................107 Przesyłanie skompresowanych stron WWW...................................................5.............113 Ograniczanie dostępu do stron WWW ...................................................5......................115 Dostęp do standardowych zmiennych CGI .....................................121 Odpowiedniki zmiennych CGI dostępne w serwletach................................................122 Serwlet wyświetlający wartości zmiennych CGI ...................................................5......125 Generowanie odpowiedzi: kody statusu .........................................127 Określanie kodów statusu ...................................................5..........................................128 Kody statusu protokołu HTTP 1.1 oraz ich przeznaczenie ..........................................129 Interfejs użytkownika obsługujący różne serwisy wyszukujące.....................................138 Generowanie odpowiedzi: nagłówki odpowiedzi HTTP ......................145 Określanie nagłówków odpowiedzi z poziomu serwletów ..........................................145 Nagłówki odpowiedzi protokołu HTTP 1.1 oraz ich znaczenie...................................147 Trwałe przechowywanie stanu serwletu i automatyczne odświeżanie stron .................156 Stosowanie trwałych połączeń HTTP...................................................5........................164 Wykorzystanie serwletów do generowania obrazów GIF ............................................168 Rozdział 3. Rozdział 4. Rozdział 5. Rozdział 6. Rozdział 7. Spis treści Rozdział 8. Rozdział 9. 5 Obsługa cookies ...........................................................................177 Korzyści płynące ze stosowania cookies...................................................5...................177 Identyfikacja użytkowników podczas trwania sesji na witrynach komercyjnych..177 Unikanie konieczności podawania nazwy użytkownika i hasła.............................178 Dostosowywanie witryny ...................................................5....................................178 Dobór reklam...................................................5...................................................5....179 Niektóre problemy związane ze stosowaniem cookies ................................................179 Narzędzia obsługi cookies dostępne w serwletach...................................................5....180 Tworzenie cookies...................................................5...............................................181 Atrybuty cookies ...................................................5.................................................181 Umieszczanie cookies w nagłówkach odpowiedzi.................................................183 Odczytywanie cookies nadesłanych przez przeglądarkę........................................183 Przykłady generowania i odczytywania cookies ...................................................5.......184 Proste narzędzia do obsługi cookies ...................................................5..........................187 Odnajdywanie cookie o określonej nazwie ...................................................5.........187 Tworzenie cookies o długim czasie istnienia ...................................................5......188 Interfejs wyszukujący z możliwością zapamiętywania ustawień.................................190 Śledzenie sesji ..............................................................................193 Potrzeba śledzenia sesji ...................................................5.............................................193 Cookies...................................................5...................................................5.............193 Przepisywanie adresów URL ...................................................5..............................194 Ukryte pola formularzy ...................................................5.......................................195 Śledzenie sesji w serwletach ...................................................5...............................195 Narzędzia programistyczne do śledzenia sesji...................................................5...........195 Pobieranie obiektu HttpSession skojarzonego z bieżącym żądaniem....................195 Pobieranie informacji skojarzonych z sesją ...................................................5........196 Kojarzenie informacji z sesją ...................................................5..............................199 Kończenie sesji...................................................5...................................................5.200 Przepisywanie adresów URL przesyłanych do przeglądarki .................................200 Serwlet generujący indywidualny licznik odwiedzin dla każdego użytkownika .........201 Internetowy sklep wykorzystujący koszyki i śledzenie sesji........................................203 Tworzenie interfejsu użytkownika ...................................................5......................204 Obsługa zamówień ...................................................5..............................................207 To czego nie widać: implementacja koszyka i katalogu produktów......................211 Część II Java Server Pages ...................................................r........... 219 Rozdział 10. Elementy skryptowe JSP ...............................................................221 Elementy skryptowe ...................................................5..................................................223 Tekst szablonu...................................................5...................................................5..223 Wyrażenia JSP ...................................................5...................................................5........224 Predefiniowane zmienne ...................................................5.....................................224 Składnia XML stosowana w wyrażeniach ...................................................5..........225 Zastosowanie wyrażeń jako wartości atrybutów...................................................5.225 Przykład...................................................5...................................................5............226 Skryptlety JSP...................................................5...................................................5.........227 Wykorzystanie skryptletów do warunkowego wykonania fragmentu strony JSP .230 Specjalna składnia skryptletów ...................................................5...........................230 Deklaracje JSP ...................................................5...................................................5........230 Specjalna składnia zapisu deklaracji ...................................................5...................232 Predefiniowane zmienne...................................................5............................................232 6 Java Servlet i Java Server Pages Rozdział 11. Dyrektywa page: strukturalizacja generowanych serwletów ...........235 Atrybut import ...................................................5...................................................5........236 Katalogi służące do przechowywania własnych klas.............................................236 Przykład...................................................5...................................................5............237 Atrybut contentType...................................................5..................................................239 Generowanie zwykłych dokumentów tekstowych .................................................239 Generowanie arkuszy kalkulacyjnych programu Microsoft Excel ........................240 Atrybut isThreadSafe...................................................5.................................................243 Atrybut session ...................................................5...................................................5.......245 Atrybut buffer ...................................................5...................................................5.........245 Atrybut autoflush ...................................................5...................................................5....246 Atrybut extends...................................................5...................................................5.......246 Atrybut info ...................................................5...................................................5............246 Atrybut errorPage ...................................................5...................................................5...246 Atrybut isErrorPage ...................................................5...................................................5248 Atrybut language ...................................................5...................................................5....249 Składnia XML zapisu dyrektyw ...................................................5................................249 Rozdział 12. Dołączanie plików i apletów do dokumentów JSP ..........................251 Dołączanie plików w czasie przekształcania strony...................................................5..252 Dołączanie plików podczas obsługi żądań ...................................................5................254 Dołączanie apletów związanych z Java Plug-In...................................................5........257 Znacznik akcji jsp:plugin ...................................................5....................................258 Znaczniki akcji jsp:param oraz jsp:params ...................................................5.........260 Znacznik akcji jsp:fallback...................................................5..................................261 Przykład: Generowanie tekstu z cieniem ...................................................5............261 Rozdział 13. Wykorzystanie komponentów JavaBeans w dokumentach JSP .......267 Podstawowe sposoby użycia komponentów...................................................5..............268 Dostęp do właściwości komponentów ...................................................5................270 Określanie właściwości komponentów — prosty przypadek.................................271 Instalacja klas komponentów ...................................................5..............................271 Przykład: StringBean ...................................................5.................................................272 Określanie wartości właściwości komponentów ...................................................5.......274 Kojarzenie właściwości z parametrami wejściowymi............................................277 Automatyczna konwersja typów ...................................................5.........................279 Kojarzenie wszystkich właściwości z parametrami wejściowymi.........................280 Wspólne wykorzystywanie komponentów ...................................................5................281 Warunkowe tworzenie komponentów...................................................5.................282 Rozdział 14. Tworzenie bibliotek znaczników .....................................................287 Elementy tworzące bibliotekę znaczników ...................................................5...............288 Klasa obsługi znacznika ...................................................5......................................288 Plik deskryptora biblioteki znaczników ...................................................5..............289 Plik JSP...................................................5...................................................5.............290 Definiowanie prostych znaczników...................................................5...........................292 Klasa obsługi znacznika ...................................................5......................................292 Plik deskryptora biblioteki znaczników ...................................................5..............294 Plik JSP...................................................5...................................................5.............295 Przypisywanie atrybutów znacznikom ...................................................5......................296 Klasa obsługi znacznika ...................................................5......................................296 Plik deskryptora biblioteki znaczników ...................................................5..............298 Plik JSP...................................................5...................................................5.............299 Spis treści 7 Dołączanie zawartości znacznika ...................................................5..............................300 Klasa obsługi znacznika ...................................................5......................................301 Plik deskryptora biblioteki znaczników ...................................................5..............303 Plik JSP...................................................5...................................................5.............304 Opcjonalne dołączanie zawartości znacznika...................................................5............306 Klasa obsługi znacznika ...................................................5......................................306 Plik deskryptora biblioteki znaczników ...................................................5..............307 Plik JSP...................................................5...................................................5.............308 Manipulowanie zawartością znacznika ...................................................5.....................309 Klasa obsługi znacznika ...................................................5......................................310 Plik deskryptora biblioteki znaczników ...................................................5..............311 Plik JSP...................................................5...................................................5.............312 Wielokrotne dołączanie lub obsługa zawartości znacznika..........................................313 Klasa obsługi znacznika ...................................................5......................................314 Plik deskryptora biblioteki znaczników ...................................................5..............315 Plik JSP...................................................5...................................................5.............316 Stosowanie znaczników zagnieżdżonych ...................................................5.....................316 Klasy obsługi znaczników...................................................5...................................317 Plik deskryptora biblioteki znaczników ...................................................5..............322 Plik JSP...................................................5...................................................5.............324 Integracja serwletów i dokumentów JSP .......................................327 Przekazywanie żądań...................................................5.................................................328 Stosowanie zasobów statycznych...................................................5........................329 Przekazywanie informacji do strony docelowej...................................................5..329 Interpretacja względnych adresów URL przez stronę docelową ...........................331 Inne sposoby pobierania obiektu RequestDispatcher.............................................332 Przykład: internetowe biuro podróży...................................................5.........................332 Dołączanie danych statycznych lub dynamicznych...............................................5.......346 Przykład: prezentacja nieprzetworzonych wyników zwracanych przez serwlety lub strony JSP ...................................................5.............347 Przekazywanie żądań ze stron JSP ...................................................5............................351 Rozdział 15. Część III Technologie pomocnicze...................................................r.. 353 Rozdział 16. Formularze HTML ..........................................................................355 Jak przesyłane są dane z formularzy HTML ...................................................5.............355 Element FORM...................................................5...................................................5.......359 Tekstowe elementy kontrolne...................................................5....................................364 Pola tekstowe...................................................5...................................................5....364 Pola hasła...................................................5...................................................5..........366 Wielowierszowe pola tekstowe ...................................................5...........................366 Przyciski ...................................................5...................................................5.................368 Przycisk SUBMIT ...................................................5...............................................369 Przyciski RESET...................................................5.................................................371 Przyciski JavaScript ...................................................5............................................372 Pola wyboru i przyciski opcji ...................................................5....................................373 Pola wyboru...................................................5...................................................5......373 Przyciski opcji ...................................................5...................................................5..374 Listy i listy rozwijane ...................................................5................................................376 Element kontrolny służący do przesyłania plików ...................................................5....379 Mapy odnośników obsługiwane na serwerze ...................................................5............380 IMAGE — standardowe mapy odnośników obsługiwane po stronie serwera.......381 ISMAP — alternatywny sposób tworzenia map odnośników obsługiwanych po stronie serwera ...................................................5....................383 8 Java Servlet i Java Server Pages Pola ukryte ...................................................5...................................................5..............385 Grupowanie elementów kontrolnych...................................................5.........................386 Określanie kolejności poruszania się pomiędzy elementami formularzy.....................388 Testowy serwer WWW...................................................5..............................................388 EchoServer ...................................................5...................................................5.......389 ThreadedEchoServer ...................................................5...........................................392 NetworkServer...................................................5...................................................5..394 Rozdział 17. Zastosowanie apletów jako interfejsu użytkownika dla serwletów....397 Przesyłanie danych metodą GET i wyświetlanie wynikowej strony WWW................398 Narzędzie korzystające z wielu serwisów wyszukujących...........................................399 Przesyłanie danych metodą GET i bezpośrednie przetwarzanie5 wyników (tunelowanie HTTP)...................................................5................................................402 Odczyt danych binarnych lub danych ASCII...................................................5......403 Odczyt serializowanych struktur danych..............................................5..................404 Przeglądarka zapytań wykorzystująca serializację obiektów i tunelowanie ................407 Przesyłanie danych metodą POST i bezpośrednie przetwarzanie5 danych (tunelowanie HTTP)...................................................5................................................413 Aplet przesyłający dane metodą POST ...................................................5.....................416 Pomijanie serwera HTTP...................................................5...........................................419 Rozdział 18. JDBC oraz zarządzanie pulami połączeń .........................................421 Podstawowe etapy wykorzystania JDBC ...................................................5..................422 Załadowanie sterownika...................................................5......................................422 Określenie adresu URL połączenia ...................................................5.....................423 Nawiązanie połączenia ...................................................5........................................423 Utworzenie polecenia ...................................................5..........................................424 Wykonanie zapytania ...................................................5..........................................424 Przetworzenie wyników ...................................................5......................................425 Zamknięcie połączenia ...................................................5........................................426 Prosty przykład wykorzystania JDBC ...................................................5.......................426 Narzędzia ułatwiające korzystanie z JDBC...................................................5...............432 Wykorzystanie narzędzi ułatwiających obsługę JDBC ................................................440 Interaktywna przeglądarka zapytań ...................................................5...........................444 Kod przeglądarki zapytań...................................................5....................................446 Przygotowane polecenia (prekompilowane zapytania) ................................................451 Zarządzanie pulami połączeń ...................................................5....................................455 Zarządzanie pulami połączeń: studium zagadnienia ...................................................5.461 Współużytkowanie pul połączeń ...................................................5...............................467 Współużytkowanie pul połączeń z zastosowaniem kontekstu serwletu.................467 Współużytkowanie pul połączeń z zastosowaniem klas singleton.........................468 Dodatki ...................................................r............................................. 469 Dodatek A Krótki przewodnik po serwletach i JSP..........................................471 Prezentacja serwletów i JSP ...................................................5......................................471 Zalety serwletów ...................................................5.................................................471 Zalety JSP...................................................5...................................................5.........471 Bezpłatnie dostępne oprogramowanie do obsługi serwletów i JSP .......................472 Dokumentacja...................................................5...................................................5...472 Kompilacja serwletów — informacje podawane w zmiennej środowiskowej CLASSPATH...................................................5.......472 Standardowe katalogi serwera Tomcat 3.0...................................................5..........472 Standardowe katalogi serwera Tomcat 3.1...................................................5..........473 Spis treści 9 Standardowe katalogi serwera JSWDK 1.0.1 ...................................................5.....473 Standardowe katalogi serwera Java Web Server 2.0..............................................473 Pierwsze serwlety ...................................................5...................................................5...473 Prosty serwlet ...................................................5...................................................5...473 Instalacja serwletów ...................................................5............................................474 Uruchamianie serwletów...................................................5.....................................474 Cykl istnienia serwletów ...................................................5.....................................474 Obsługa żądań — dane przesyłane z formularzy.................................................5.........475 Odczyt parametrów ...................................................5.............................................475 Przykład serwletu ...................................................5................................................475 Przykład formularza ...................................................5............................................476 Filtrowanie znaków specjalnych HTML...................................................5.............477 Obsługa żądań — nagłówki żądań HTTP ...................................................5.................477 Metody odczytujące nagłówki żądania ...................................................5...............477 Inne informacje o żądaniu ...................................................5...................................478 Najczęściej używane nagłówki żądań protokołu HTTP 1.1...................................478 Dostęp do standardowych zmiennych CGI ...................................................5...............479 Możliwości, które nie zostały opisane gdzie indziej ..............................................479 Odpowiedniki zmiennych CGI dostępne w serwletach..........................................479 Generowanie odpowiedzi: Kody statusu HTTP ...................................................5........480 Format odpowiedzi HTTP...................................................5...................................480 Metody określające kod statusu ...................................................5..........................480 Kategorie kodów statusu ...................................................5.....................................481 Najczęściej wykorzystywane kody statusu protokołu HTTP 1.1...........................481 Generowanie odpowiedzi — nagłówki odpowiedzi protokołu HTTP .........................482 Generowanie dowolnych nagłówków ...................................................5.................482 Generowanie najczęściej używanych nagłówków .................................................482 Najczęściej używane nagłówki odpowiedzi protokołu HTTP 1.1 .........................483 Generowanie obrazów GIF przez serwlety ...................................................5.........484 Obsługa cookies...................................................5...................................................5......484 Typowe zastosowania cookies ...................................................5............................484 Problemy napotykane przy stosowaniu cookies...................................................5..484 Ogólny sposób użycia cookies ...................................................5............................485 Metody obsługi cookies...................................................5.......................................485 Śledzenie sesji...................................................5...................................................5.........486 Pobieranie informacji o sesji — getValue...................................................5...........486 Kojarzenie informacji z sesją — putValue...................................................5..........486 Metody interfejsu HttpSession ...................................................5............................487 Kodowanie adresów URL ...................................................5...................................488 Elementy skryptowe JSP ...................................................5...........................................488 Typy elementów skryptowych ...................................................5............................488 Tekst szablonu...................................................5...................................................5..489 Predefiniowane zmienne ...................................................5.....................................489 Dyrektywa page — określanie postaci generowanych serwletów................................490 Atrybut import...................................................5...................................................5..490 Atrybut contentType...................................................5............................................490 Przykład użycia atrybutu contentType ...................................................5................490 Przykład wykorzystania metody setContentType ..................................................490 Atrybut isThreadSafe ...................................................5..........................................491 Atrybut session ...................................................5...................................................5.491 Atrybut buffer...................................................5...................................................5...492 Atrybut autoflush...................................................5.................................................492 Atrybut extends ...................................................5...................................................5492 Atrybut info ...................................................5...................................................5......492 10 Java Servlet i Java Server Pages Atrybut errorPage ...................................................5................................................492 Atrybut isErrorPage...................................................5.............................................492 Atrybut language ...................................................5.................................................492 Zapis zgodny z XML...................................................5...........................................493 Dołączanie plików i apletów do dokumentów JSP...................................................5....493 Dołączanie plików w czasie przekształcania strony...............................................493 Dołączanie plików w czasie obsługi żądania ...................................................5......493 Aplety obsługiwane przy użyciu Java Plug-In: Prosty przypadek .........................493 Atrybuty znacznika jsp:plugin...................................................5.............................494 Parametry określane w kodzie HTML: jsp:param..................................................494 Tekst alternatywny ...................................................5..............................................495 Wykorzystanie komponentów JavaBeans w dokumentach JSP...................................495 Podstawowe wymagania jakie należy spełnić, aby klasa mogła być uznana za komponent...................................................5......495 Podstawowe sposoby użycia komponentów ...................................................5.......496 Kojarzenie właściwości z parametrami przesłanymi w żądaniu ............................496 Wspólne wykorzystywanie komponentów: atrybut scope znacznika akcji jsp:useBean ...................................................5.............................496 Warunkowe tworzenie komponentów...................................................5.................497 Tworzenie bibliotek znaczników...................................................5...............................497 Klasa obsługi znacznika ...................................................5......................................497 Plik deskryptora biblioteki znaczników ...................................................5..............497 Plik JSP...................................................5...................................................5.............498 Przypisywanie atrybutów znacznikom...................................................5................498 Dołączanie zawartości znacznika ...................................................5........................498 Opcjonalne dołączanie zawartości znacznika ...................................................5.....498 Przetwarzanie zawartości znacznika ...................................................5...................498 Wielokrotne dołączanie lub przetwarzanie zawartości znacznika .........................499 Stosowanie zagnieżdżonych znaczników...................................................5............499 Integracja serwletów i dokumentów JSP...................................................5...................499 Opis ogólny ...................................................5...................................................5......499 Składnia służąca do przekazania żądania ...................................................5............499 Przekazywanie żądań do zwykłych dokumentów HTML......................................500 Tworzenie globalnie dostępnych komponentów JavaBeans ..................................500 Tworzenie komponentów JavaBeans dostępnych w sesji......................................500 Interpretacja względnych adresów URL na stronie docelowej ..............................500 Alternatywne sposoby pobierania obiektu RequestDispatcher5 (wyłącznie Java Servlet 2.2) ...................................................5.............................501 Dołączenie danych statycznych lub dynamicznych ...............................................501 Przekazywanie żądań ze stron JSP...................................................5......................501 Stosowanie formularzy HTML...................................................5..................................501 Element FORM ...................................................5...................................................5501 Pola tekstowe...................................................5...................................................5....501 Pola hasła...................................................5...................................................5..........502 Obszary tekstowe ...................................................5................................................502 Przyciski SUBMIT ...................................................5..............................................502 Alternatywna postać przycisków SUBMIT ...................................................5........502 Przyciski RESET...................................................5.................................................503 Alternatywna postać przycisków RESET ...................................................5...........503 Przyciski JavaScript ...................................................5............................................503 Alternatywna postać przycisków JavaScript...................................................5.......503 Pola wyboru...................................................5...................................................5......504 Przyciski opcji ...................................................5...................................................5..504 Listy rozwijane ...................................................5...................................................5.504 Spis treści 11 Elementy kontrolne umożliwiające przesyłanie plików na serwer ........................504 Mapy odnośników obsługiwane na serwerze...................................................5......505 Pola ukryte...................................................5...................................................5........505 Możliwości dostępne w przeglądarce Internet Explorer ........................................505 Wykorzystanie apletów jako interfejsu użytkownika dla serwletów ...........................505 Przesyłanie danych metodą GET i wyświetlanie strony wynikowej......................505 Przesyłanie danych metodą GET i bezpośrednie przetwarzanie5 wyników (tunelowanie HTTP) ...................................................5.........................................506 Przesyłanie serializowanych danych — kod apletu ...............................................507 Przesyłanie serializowanych danych — kod serwletu............................................507 Przesyłanie danych metodą POST i bezpośrednie przetwarzanie5 wyników (tunelowanie HTTP) ...................................................5.........................................508 Pomijanie serwera HTTP ...................................................5....................................510 JDBC i zarządzanie pulami połączeń z bazami danych ...............................................510 Podstawowe etapy wykorzystania JDBC ...................................................5............510 Narzędzia obsługi baz danych...................................................5.............................511 Przygotowane polecenia (prekompilowane zapytania) ..........................................512 Etapy implementacji puli połączeń ...................................................5.....................512 Skorowidz ..........................................................................................................515 Rozdział 9. W niniejszym rozdziale przedstawiono sposób, w jaki można wykorzystać mechani- zmy śledzenia sesji dostępne w serwletach w celu przechowywania informacji o użyt- kownikach poruszających się po witrynie WWW. Potrzeba lledzenia sesji HTTP jest protokołem „bezstanowym” — oznacza to, że za każdym razem, gdy prze- glądarka pobiera stronę WWW, tworzone jest niezależne połączenie z serwerem. Serwer nie przechowuje automatycznie żadnych kontekstowych informacji skojarzo- nych z przeglądarką, która to połączenie nawiązała. Nawet w przypadku serwerów, które wykorzystują trwałe połączenia HTTP i za pomocą jednego połączenia obsłu- gują wiele żądań zgłaszanych w niewielkich odstępach czasu, nie ma żadnych wbu- dowanych mechanizmów ułatwiających przechowywanie takich kontekstowych in- formacji. Brak takiego mechanizmu może powodować liczne problemy. Szczególnie widoczne są one w przypadku sklepów internetowych, gdzie istnieje oczywista po- trzeba śledzenia sesji użytkownika. Znane są trzy podstawowe sposoby rozwiązywania problemów tego typu — cookies, przepisywanie adresów URL oraz zastosowanie ukrytych mpól formularzy. Cookies Istnieje możliwość wykorzystywania cookies w celu przechowywania informacji o sesji w sklepie internetowym, a każde kolejne połączenie z tym sklepem może po- wodować odszukanie danej sesji i pobranie przechowywanych na serwerze informacji o niej. Na przykład, utworzony w tym celu serwlet mógłby przeprowadzać następują- ce czynności: #8621.#/798;36 2+2./280+836#8621(cid:24)7(cid:25) +78+,/203#/72/;+78+,/(cid:24)(cid:25) +78+,/8+,-+3,+2+3.79+$+,-/+2#/77(cid:24)(cid:25) 194 Część I  Serwlety 2.1 i 2.2 8+,-+3,+2+ 498(cid:24).#/7 203#/7(cid:25) 33/-33/#/72/;33/(cid:24)### .#/7(cid:25) 7/773233/ 7/8 +8(cid:24) (cid:25) 6/74327/ +..33/(cid:24)-33/#/7(cid:25) Dzięki temu podczas obsługi kolejnych żądań, na podstawie wartości cookie ###, serwer może pobierać z tablicy 8+,-+3,+2+ tablicę asocjacyjną 203#/7 zawie- rającą informacje o konkretnej sesji. Jest to bardzo dobre rozwiązanie, które często jest wykorzystywane przy obsłudze sesji. Niemniej jednak wciąż istnieje potrzeba po- siadania narzędzi programistycznych wyższego poziomu, które pozwoliłyby na im- plementację bardziej wyrafinowanych rozwiązań. Choć serwlety dysponują łatwymi w obsłudze narzędziami wysokiego poziomu przeznaczonymi do obsługi cookies (opisano je w rozdziale 8.), wciąż jednak istnieje stosunkowo dużo drobnych czynno- ści, które należy przeprowadzić samodzielnie. Do czymnności tych można zaliczyć: JJJJ pobieranie cookie przechowującego identyfikator sesjmi (możliwe jest nadesłanie kilku cookies z jednej przeglądarki); JJJJ określenie odpowiedniego czasu wygaśnięcia ważności mcookie (sesje, które są nieaktywne przez ponad 24 godziny prawdopodobnie powimnny zostać zamknięte); JJJJ skojarzenie tablic asocjacyjnych z każdym żądaniem; JJJJ generowanie unikalnego identyfikatora sesji. Należy podkreślić, że ze względu na doskonale znane i oczywiste zagrożenia prywat- ności, jakie wiążą się z wykorzystywaniem cookies (patrz podrozdział rozdziału 8. „Niektóre problemy związane ze stosowaniem cookies”), niektórzy użytkownicy wy- łączają ich obsługę. Wynika z tego potrzeba posiadania, oprócz protokołu wysokiego poziomu, także alternatywnego rozwiązania tego problmemu. Przepisywanie adresów URL Rozwiązanie to polega na dopisywaniu na końcu adresu URL pewnych dodatkowych, identyfikujących sesję danych, które pozwalają serwerowi na skojarzenie przekazane- go identyfikatora z przechowywanymi informacjami dotyczącymi danej sesji. Na przykład, w adresie URL http://komputer/katalog/plik.html;sessionid=1234 dołączone informacje o sesji mają postać sessionid=1234. Rozwiązanie to jest bardzo funkcjo- nalne, a przy tym posiada tę dodatkową zaletę, że można z niego korzystać nawet w przypadku przeglądarek nie obsługujących cookies oraz wtedy, gdy użytkownik wyłączył obsługę cookies. Jednak także i to rozwiązanie zmusza program działający na serwerze do wykonywania wielu prostych, lecz uciążliwych czynności. Poza tym należy zwracać szczególną uwagę, aby każdy adres URL odwołujący się do danej witryny i przekazywany do przeglądarki użytkownika (nawet w sposób niejawny, przykładowo, za pomocą nagłówka 3-+832), został uzupełniony do dodatkowe in- formacje. Inną niedogodnością rozwiązania polegającego na przepisywaniu adresów URL jest fakt, że w po zakończeniu sesji i późniejszym nawiązania kolejnej sesji na danej witrynie za pomocą zapamiętanego adresu lub połączenia, wszystkie dotyczące jej informacje są tracone. Rozdział 9.  Śledzenie sesji 195 Ukryte pola formularzy W formularzach HTML można umieszczać pola o następującmej postaci:  $$ 7/7+    Wykorzystanie takiego elementu oznacza, że podczas przesyłania formularza podana nazwa elementu oraz jego wartość są dołączane do pozostałych informacji przekazy- wanych na serwer. Więcej informacji na temat ukrytych pól formularzy znajduje się w podrozdziale rozdziału 16. „Pola ukryte”. W takich ukrytych polach formularzy można przechowywać informacje na temat sesji. Jednak wykorzystywanie tej metody ma jedną podstawową wadę — każda strona witryny musi byćm generowana dynamicznie. kledzenie sesji w serwletach Serwlety udostępniają bardzo dobre rozwiązanie problemu śledzenia sesji — interfejs 884#/7732. Możliwości funkcjonalne tego interfejsu bazują na wykorzystywaniu cookies lub przepisywania adresów URL. W rzeczywistości większość serwerów wy- korzystuje cookies, pod warunkiem, że są one obsługiwane przez przeglądarkę użyt- kownika. Jeśli przeglądarka nie obsługuje cookies lub gdy ich obsługa została jawnie wyłączona, często automatycznie stosowane jest przepisywanie adresów URL. W ten sposób autorzy serwletów nie muszą jawnie obsługiwać cookies ani informacji dołą- czanych do adresów URL, a zyskują bardzo wygodny sposób przechowywania do- wolnych obiektów skojarzonych z każdą sesją. Narzdzia programistyczne do lledzenia sesji Wykorzystanie śledzenia sesji w serwletach jest bardzo proste i wiąże się z pobiera- niem obiektu sesji skojarzonego z obsługiwanym żądaniem, w razie konieczności z tworzeniem nowego obiektu sesji, pobieraniem informacji skojarzonych z sesją, za- pisywaniem informacji w obiekcie sesji oraz z usuwaniem przerwanych lub zakoń- czonych sesji. Dodatkowo, jeśli do użytkownika przekazywane są jakiekolwiek adre- sy URL odwołujące się do danej witryny i jeśli jest stosowane przepisywanie adresów URL, to do każdego adresu URL należy dołączać informacje mo sesji. Pobieranie obiektu HttpSession skojarzonego z biercym rdaniem Obiekt 884#/7732 można pobierać za pomocą metody 1/8#/7732 interfejsu 884(cid:25) #/6:/8 /59/78. System pobiera identyfikator użytkownika z cookie lub z informacji dołączonych do adresu URL w niewidoczny sposób, a następnie używa go jako klucza przy pobieraniu odpowiedniego elementu z tablicy utworzonych wcześniej obiektów 196 Część I  Serwlety 2.1 i 2.2 884#/7732. Wszystkie te czynności są wykonywane w sposób niezauważalny dla programisty, który jedynie wywołuje metodę 1/8#/7732. Jeśli wywołanie tej metody zwraca wartość 29, oznacza to, że z danym użytkownikiem jeszcze nie skojarzono żadnej sesji, a zatem można ją utworzyć. Sesje są tworzone bardzo często, zatem do- stępna jest specjalna opcja pozwalająca na utworzenie nowej sesji, jeśli sesja dla da- nego użytkownika jeszcze nie istnieje. W tym celu wystarczy przekazać wartość 869/ w wywołaniu metody 1/8#/7732. A zatem, pierwszy krok przy rozpoczynaniu sesji zazwyczaj wygląda w następujący sposób: 884#/77327/7+6/59/78 1/8#/7732(cid:24)869/(cid:25) Sprawdzenie, czy dana sesja istniała już wcześniej, lub czy też została właśnie utwo- rzona, jest możliwe za pomocą metody 7/;. Pobieranie informacji skojarzonych z sesj Obiekty 884#/7732 są przechowywane na serwerze. Są one automatycznie kojarzo- ne z żądaniami podczas wykorzystywania niewidocznych mechanizmów, takich jak cookies lub przepisywanie adresów URL. Obiekty te posiadają wbudowaną strukturę danych, która umożliwia im przechowywanie dowolnej liczby kluczy oraz skojarzo- nych z nimi wartości. W specyfikacjach Java Servlet 2.1 oraz wcześniejszych do po- brania wartości uprzednio zapisanej w sesji stosuje się wywołanie 7/7732 1/8 +9/ 2+;+86,989 . Metoda 1/8 +9/ zwraca obiekt typu ,/-8, a zatem przywróce- nie oryginalnego typu danej zapisanej w sesji jest możliwe poprzez zastosowanie od- powiedniego rzutowania typów. Metoda zwraca wartość 29, jeśli nie ma atrybutu o podanej nazwie. Oznacza to, że przed wywołaniem jakichkolwiek metod obiektu skojarzonego z sesją należy sprawdzić, czy nie jest mto wartość 29. W specyfikacji Java Servlet 2.2 metoda 1/8 +9/ została uznana za przestarzałą i za- stąpiono ją metodą 1/8886,98/. Nazwa tej metody lepiej odpowiada metodzie 7/8886,98/ (w specyfikacji 2.1 metodzie 1/8 +9/ odpowiadała metoda 498 +9/, a nie 7/8 +9/). W przykładach przedstawionych w niniejszej książce zastosowano metodę 1/8 +9/, gdyż nie wszystkie dostępne na rynku komercyjne mechanizmy ob- sługi serwletów są zgodne ze specyfikacją 2.2. Poniżej podano przykład wykorzystania mechanizmu śledzenia sesji. Założono, że #34421+68 jest klasą zdefiniowaną w celu przechowywania informacji o zamawia- nych produktach (implementację tej klasy zamieszczono w podrozdziale „Internetowy sklep wykorzystujący koszyki i śledzenie sesji”). 884#/77327/7+6/59/78 1/8#/7732(cid:24)869/(cid:25) #34421+6837(cid:24)#34421+68(cid:25)7/7+ 1/8 +9/(cid:24)734421+68(cid:25) 0(cid:24)3729(cid:25) ;7/72/+/7-/377+ 372/;#34421+68(cid:24)(cid:25) 7/7+ 498 +9/(cid:24)734421+68 37(cid:25)  63,3737/(cid:24)37(cid:25) W większości przypadków nazwa atrybutu jest znana, a celem działania jest pobranie wartości skojarzonej z tą nazwą. Istnieje także możliwość pobrania nazw wszystkich atrybutów skojarzonych z daną sesją — służy do tego metoda 1/8 +9/+/7 zwracająca Rozdział 9.  Śledzenie sesji 197 tablicę łańcuchów znaków. Ta metoda jest jedynym sposobem określenia nazw atry- butów w przypadku korzystania z mechanizmów obsługi serwletów zgodnych ze spe- cyfikacją Java Servlet 2.1. W przypadku mechanizmów zgodnych ze specyfikacją 2.2 nazwy atrybutów można pobierać za pomocą metody 1/8886,98/+/7. Metoda ta działa w bardziej spójny sposób, gdyż zwraca obiekt 29/6+832, podobnie jak me- tody 1/8/+./6+/7 oraz 1/8 +6+/8/6+/7 interfejsu 884#/6:/8 /59/78. Najczęściej wykorzystywanymi danymi są dane bezpośrednio skojarzone z sesją, niemniej jednak dostępne są także inne, użyteczne informacje dotyczące sesji. Poniżej przedstawiono metody interfejsu 884#/7732: public Object getValue(String nazwa) public Object getAttribute(String nazwa) Metody te pobierają z obiektu sesji wartość, która umprzednio została w nim zapisana. Obydwie metody zwracają wartość 29, jeśli z podaną nazwą nie jest skojarzona żadna wartość. W mechanizmach obsługi serwmletów zgodnych ze specyfikacją Java Servlet 2.1 należy używać metody 1/8 +9/. W mechanizmach zgodnych ze specyfikacją 2.2 można używać obydwu metodm, jednak zalecane jest stosowanie metody 1/8886,98/, gdyż metoda 1/8 +9/ została uznana za przestarzałą. public void putValue(String nazwa, Object wartolć) public void setAttribute(String nazwa, Object wartoelć) Te metody kojarzą wartość atrybutu z jego nazwą. W mecmhanizmach obsługi serwletów zgodnych ze specyfikacją Java Servlet 2.1 należmy używać metody 498 +9/, natomiast w mechanizmach zgodnych ze specyfikacją m2.2 można stosować obydwie metody (rekomendowana jest metoda m7/8886,98/, gdyż metoda 498 +9/ została uznana za przestarzałą). Jeśli obiekt przekazamny w wywołaniu metody 498 +9/ lub 7/8886,98/ implementuje interfejs 884#/77322.2178/2/6, to po zapisaniu tego obiektu w sesji jest wywoływana jego metoda :+9/392.. Podobnie, jeśli obiekt implementuje interfejs 884#/77322.2178/2/6, po jego usunięciu z sesji jest wywoływana metoda :+9/ 2,392. tego obiektu. public void removeValue(String nazwa) public void removeAttribute(String nazwa) Obydwie te metody powodują usunięcie wartości skojarmzonych z podaną nazwą. Jeśli usuwana wartość implementuje interfejs 884#/77322.2178/2/6, wywoływana jest jej metoda :+9/ 2,392.. W mechanizmach obsługi serwletów zgodnych ze specyfikacją Java Servlet 2.1 należy używać mmetody 6/3:/ +9/. W mechanizmach zgodnych ze specyfikacją 2.2 preferowanme jest użycie metody 6/3:/886,98/, choć w celu zapewnienia zgodności z poprzednimi wersjami oprogramowania można także używać metody 6/3:/ +9/ (uznawanej za przestarzałą). 198 Część I  Serwlety 2.1 i 2.2 public String[] getValueNames() public Enumeration getAttributeNames() Te metody zwracają nazwy wszystkich atrybutów w danemj sesji. W przypadku mechanizmów obsługi serwletów zgodnych ze specyfikacmją Java Servlet 2.1 należy używać metody 1/8 +9/+/7. W przypadku mechanizmów zgodnych ze specyfikacją 2.2 metoda ta jest wciąż dostępna, lecmz uznana za przestarzałą i z tego względu należy stosować metodę 1/8886,98/+/7. public String getId() Jest to metoda zwracająca unikalny identyfikator generowany dla każdej z sesji. Identyfikator ten jest czasami używany jako nazwa kmlucza. Dotyczy to sytuacji, gdy z sesją jest skojarzona tylko jedna wartość lub mgdy informacje o sesji są rejestrowane. public boolean isNew() Jest to metoda zwracająca wartość 869/, jeśli klient jeszcze nigdy nie korzystał z sesji (zazwyczaj dlatego, że sesja została właśnie mutworzona, a odbierane żądania jeszcze się do niej nie odwoływały). Jeśli danam sesja już istnieje od jakiegoś czasu, metoda ta zwraca wartość 0+7/. public long getCreationTime() Ta metoda zwraca czas utworzenia sesji wyrażony jakmo liczba milisekund, jakie upłynęły od początku 1970 roku (GMT). Aby przekształcić mtę wartość do powszechnie stosowanej formy, należy przekazać jmą do konstruktora klasy +8/ lub posłużyć się metodą 7/8$/27 klasy 6/136+2+/2.+6. public long getLastAccessTime() Metoda ta zwraca czas ostatniego przesłania sesji z pmrzeglądarki na serwer. Czas ten jest wyrażony jako liczba milisekund, jakime upłynęły od początku 1970 roku (GMT). public int getMaxInactiveInterval() public void setMaxInactiveInterval(int ilolćSekund) Pierwsza z tych metod pobiera, a druga określa czas m(wyrażony w sekundach), w którym klient musi nadesłać żądanie, aby sesja niem została automatycznie unieważniona. Jeśli w wywołaniu metody 7/8+2+-8:/28/6:+ jest podana wartość mniejsza od zera, dana sesja nigdy nie zostmanie automatycznie unieważniona. Należy pamiętać, iż limit czasu oczekimwania sesji jest przechowywany na serwerze i nie odpowiada dacie wygmaśnięcia ważności cookies, która jest przesyłana do przeglądarki. public void invalidate() Wywołanie tej metody powoduje unieważnienie sesji im usunięcie z niej wszystkich skojarzonych z nią obiektów. Rozdział 9.  Śledzenie sesji 199 Kojarzenie informacji z sesj Zgodnie z tym, co podano w poprzednim podrozdzial
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Java Servlet i Java Server Pages
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: