Java Servlet - programowanie.pdf

download Java Servlet - programowanie.pdf

of 489

Transcript of Java Servlet - programowanie.pdf

  • Spis treci

    SPIS TRECI...........................................................................................................................................................1

    O AUTORACH....................................................................................................................................................... 9

    WSTP...................................................................................................................................................................10

    SERVLET API 2.2................................................................................................................................................... 10Servlet API 2.3................................................................................................................................................ 11

    CZYTELNICY PIERWSZEGO WYDANIA............................................................................................................................11CZYTELNICY........................................................................................................................................................... 12

    Co naley wiedzie..........................................................................................................................................12PRZYKADY............................................................................................................................................................ 12ORGANIZACJA..........................................................................................................................................................13KONWENCJE WYKORZYSTYWANE W TEJ KSICE........................................................................................................... 15PROBA O KOMENTARZE............................................................................................................................................15PODZIKOWANIA......................................................................................................................................................15PODZIKOWANIA Z WYDANIA PIERWSZEGO....................................................................................................................16

    ROZDZIA 1. WPROWADZENIE.................................................................................................................... 18

    HISTORIA APLIKACJI WWW..................................................................................................................................... 18Common Gateway Interface........................................................................................................................... 18Inne rozwizania.............................................................................................................................................20Serwlety Javy.................................................................................................................................................. 21

    OBSUGA SERWLETW..............................................................................................................................................22Samodzielne kontenery serwletw.................................................................................................................. 22Doczane kontenery serwletw..................................................................................................................... 23Osadzane kontenery serwletw.......................................................................................................................24Uwagi dodatkowe........................................................................................................................................... 24

    POTGA SERWLETW................................................................................................................................................ 24Przenono.................................................................................................................................................... 24Moc................................................................................................................................................................. 25Wydajno i wytrzymao.............................................................................................................................. 25Bezpieczestwo............................................................................................................................................... 25Elegancja........................................................................................................................................................ 26Integracja........................................................................................................................................................26Rozszerzalno i elastyczno......................................................................................................................... 26

    ROZDZIA 2. APLETY HTTP WPROWADZENIE................................................................................... 27

    PODSTAWY HTTP.................................................................................................................................................. 27Zlecenia, odpowiedzi, nagwki......................................................................................................................27Metody GET i POST....................................................................................................................................... 28Pozostae metody Http.................................................................................................................................... 29

    INTERFEJS API (SERVLET API)................................................................................................................................ 29TWORZENIE STRONY................................................................................................................................................. 30

    Pisanie Hello World................................................................................................................................... 30Uruchamianie Hello World........................................................................................................................ 31

  • Przetwarzanie danych formularzowych..........................................................................................................32Obsuga zlece POST..................................................................................................................................... 34Obsuga zlece HEAD.................................................................................................................................... 34

    APLIKACJE WWW................................................................................................................................................. 35Katalog WEB-INF...........................................................................................................................................36Deskryptor wdroenia.....................................................................................................................................37

    PRZEJDMY DALEJ....................................................................................................................................................40

    ROZDZIA 3. CZAS ISTNIENIA (CYKL YCIA) APLETU........................................................................ 41

    ALTERNATYWA APLETU.............................................................................................................................................41Pojedyncza maszyna wirtualna Javy.............................................................................................................. 41Trwao kopii.................................................................................................................................................42Liczniki............................................................................................................................................................42Liczniki zsynchronizowane..............................................................................................................................43Liczniki caociowe......................................................................................................................................... 45

    ODNAWIANIE (POWTRNE ADOWANIE) APLETU............................................................................................................ 46METODY INIT I DESTROY...................................................................................................................................46

    Licznik z metod Init....................................................................................................................................... 47Licznik z metodami Init i Destroy................................................................................................................... 49Model jedno-wtkowy (Single-Thread Model)............................................................................................... 51

    PRZETWARZANIE DRUGOPLANOWE...............................................................................................................................53URUCHAMIANIE I ROZRUCH........................................................................................................................................54BUFOROWANIE PODRCZNE PO STRONIE KLIENTA........................................................................................................... 55BUFOROWANIE ZEWNTRZNE PO STRONIE SERWERA........................................................................................................57

    ROZDZIA 4. ODCZYTYWANIE INFORMACJI.......................................................................................... 65

    APLET....................................................................................................................................................................66Pobieranie parametru pocztkowego apletu.................................................................................................. 66Pobieranie nazw parametrw pocztkowych apletw....................................................................................67Pobieranie nazwy apletu.................................................................................................................................68

    SERWER ................................................................................................................................................................ 68Pobieranie informacji o serwerze...................................................................................................................68Zapisywanie w pliku tymczasowym.................................................................................................................70Ograniczanie dziaania apletu do serwera.....................................................................................................71Pobieranie kontekstowego parametru pocztkowego.................................................................................... 72Ustalanie wersji apletu................................................................................................................................... 73

    KLIENT.................................................................................................................................................................. 75Pobieranie informacji o komputerze klienta...................................................................................................75Ograniczanie dostpu..................................................................................................................................... 76Pobieranie informacji o uytkowniku............................................................................................................. 77Personalizowane powitanie............................................................................................................................ 78Zlecenie ..........................................................................................................................................................79Parametry zlecenia......................................................................................................................................... 79Generowanie Klucza Licencji......................................................................................................................... 81Informacje cieki........................................................................................................................................... 83Pobieranie typw MIME.................................................................................................................................86Podawanie plikw...........................................................................................................................................87Czytanie z zasobw oddzielonych................................................................................................................... 88Podawanie zasobw........................................................................................................................................90Podawanie zasobw do cignicia............................................................................................................... 92Okrelanie co byo przedmiotem zlecenia...................................................................................................... 93Sposb zoenia zlecenia.................................................................................................................................94Nagwki zleceniowe.......................................................................................................................................95Strumie wyjciowy.........................................................................................................................................98adowanie plikw przy uyciu strumienia wejciowego................................................................................ 99Dodatkowe atrybuty......................................................................................................................................106

    ROZDZIA 5. PRZESYANIE INFORMACJI HTTP..................................................................................108

    STRUKTURA ODPOWIEDZI.........................................................................................................................................108PRZESYANIE STANDARDOWEJ ODPOWIEDZI ............................................................................................................... 109KORZYSTANIE ZE POCZE STAYCH....................................................................................................................... 110

  • BUFOROWANIE ODPOWIEDZI.....................................................................................................................................111Regulowanie bufora odpowiedzi...................................................................................................................112

    KODY STATUSU..................................................................................................................................................... 114Ustanawianie kodu statusu........................................................................................................................... 114Ulepszanie apletu ViewFile przy pomocy kodw statusu.........................................................................115Nagwki HTTP ........................................................................................................................................... 116

    USTAWIANIE NAGWKW HTTP .......................................................................................................................... 117Przekierowywanie zlecenia...........................................................................................................................118Nadzorowanie cznikw do innych stron.................................................................................................... 119Klienckie ciganie z serwera.......................................................................................................................120

    ROZWIZYWANIE PROBLEMW................................................................................................................................. 121Kody statusu..................................................................................................................................................122Konfiguracja stron bdu.............................................................................................................................. 123Rejestracja.................................................................................................................................................... 125Raportowanie................................................................................................................................................126Wyjtki.......................................................................................................................................................... 127Wyjtki apletowe ServletException.......................................................................................................... 127Wyjtki apletowe UnavailableException..................................................................................................128Konfiguracja Stron Wyjtkw.......................................................................................................................128Jak rozpozna, e nikt nie oczekuje na sygnay?.......................................................................................... 130

    SZE SPOSOBW WYCIGANIA KORZYCI Z APLETW ................................................................................................. 131

    ROZDZIA 6. PRZESYANIE TRECI MULTIMEDIALNEJ.................................................................. 134

    WAP I WML..................................................................................................................................................... 134WML..............................................................................................................................................................136Symulatory urzdze WAP............................................................................................................................137Podawanie treci WAP................................................................................................................................. 137Dynamiczna tre WAP.................................................................................................................................138Poznajmy WAP..............................................................................................................................................142

    OBRAZKI.............................................................................................................................................................. 142Generowanie obrazkw................................................................................................................................ 142Obrazek Hello World................................................................................................................................143Dynamicznie generowany schemat...............................................................................................................145Skadanie obrazu...........................................................................................................................................147Rysowanie obrazkw.....................................................................................................................................147Obrazki efekty...........................................................................................................................................152

    TRE SKOMPRESOWANA.........................................................................................................................................155SERWER CYKLICZNY............................................................................................................................................... 157

    ROZDZIA 7. LEDZENIE SESJI ..................................................................................................................161

    UWIERZYTELNIANIE UYTKOWNIKA........................................................................................................................... 162UKRYTE POLA DANYCH FORMULARZA........................................................................................................................163PRZEPISYWANIE URL-U......................................................................................................................................... 165TRWAE COOKIES...................................................................................................................................................167

    Praca z cookies............................................................................................................................................. 167Robienie zakupw przy pomocy trwaych cookies........................................................................................169

    API LEDZENIE SESJI.........................................................................................................................................171Podstawy ledzenia sesji............................................................................................................................... 171Wykorzystywanie ledzenia sesji liczba wizyt...........................................................................................172Czas istnienia (cykl ycia) sesji.....................................................................................................................173Ustawianie terminu wanoci sesji............................................................................................................... 174Metody czasu trwania................................................................................................................................... 176Awaryjne zmiany trybu pracy nie-ciasteczkowe.................................................................................. 178Robienie zakupw przy uyciu ledzenia sesji.............................................................................................. 182

    ROZDZIA 8. BEZPIECZESTWO............................................................................................................... 184

    Uwierzytelnienie poprzez HTTP................................................................................................................... 185KONFIGURACJA UWIERZYTELNIENIA HTTP................................................................................................................185

    Uwierzytelnienie w oparciu o rol................................................................................................................185Ograniczanie dostpu do serwletu................................................................................................................186

    WYSZUKIWANIE INFORMACJI UWIERZYTELNIENIA......................................................................................................... 188

  • Uwierzytelnienie w oparciu o formularz.......................................................................................................189Uwierzytelnienie niestandardowe.................................................................................................................191Certyfikaty cyfrowe....................................................................................................................................... 195Protok bezpiecznej transmisji danych (SSL)..............................................................................................197

    ROZDZIA 9. CZNO Z BAZ DANYCH.............................................................................................202

    RELACYJNE BAZY DANYCH...................................................................................................................................... 203JDBC API..........................................................................................................................................................205

    Sterowniki JDBC...........................................................................................................................................205Poczenie z baz danych............................................................................................................................. 206Otwieranie poczenia z serwletu................................................................................................................. 207Wykonywanie zapyta SQL...........................................................................................................................208Obsuga wyjtkw SQL.................................................................................................................................209Zestawy wynikw w szczegach...................................................................................................................210Obsuga pl majcych warto null..............................................................................................................211Aktualizacja baz danych............................................................................................................................... 212Uycie gotowych zapyta..............................................................................................................................213Ponowne uycie obiektw bazy danych........................................................................................................ 214Ponowne uycie pocze do baz danych..................................................................................................... 214Ponowne uycie przygotowanych wyrae................................................................................................... 215

    TRANSAKCJE......................................................................................................................................................... 215Uycie transakcji w JDBC............................................................................................................................ 216Optymalizacja transakcji.............................................................................................................................. 217Pule pocze................................................................................................................................................217Serwlet ksigi goci.......................................................................................................................................221

    ZAAWANSOWANE TECHNIKI JDBC...........................................................................................................................225Przechowywane procedury........................................................................................................................... 225Pliki binarne i ksigi, czyli bardzo due obiekty...........................................................................................226

    CO DALEJ?........................................................................................................................................................... 227

    ROZDZIA 10. KOMUNIKACJA APLET-SERWLET................................................................................ 229

    OPCJE KOMUNIKACJI...............................................................................................................................................229Aplety godne i niegodne zaufania.................................................................................................................229Poczenia przez HTTP i zwyke porty......................................................................................................... 230Serwlety i serializacja obiektu...................................................................................................................... 231JDBC, RMI i CORBA....................................................................................................................................232Podejcie hybrydowe.................................................................................................................................... 233

    SERWER GODZINY.................................................................................................................................................. 233Aplet.............................................................................................................................................................. 233Oparta na tekcie komunikacja HTTP..........................................................................................................236Oparta na obiektach komunikacja HTTP..................................................................................................... 240Komunikacja przez port................................................................................................................................ 242Komunikacja RMI......................................................................................................................................... 248Wskazwka!!!!...............................................................................................................................................253W ktrym miejscu uruchomi rejestr?.......................................................................................................... 253

    SERWER POGAWDEK..............................................................................................................................................255Projekt...........................................................................................................................................................256Serwlet...........................................................................................................................................................257Aplet HTTP................................................................................................................................................... 260Aplet czcy si przez port...........................................................................................................................262Aplet RMI......................................................................................................................................................263Dyspozytor.................................................................................................................................................... 266

    ROZDZIA 11. WSPPRACA SERWLETW...........................................................................................268

    DZIELENIE INFORMACJI............................................................................................................................................268Wspdzielenie przy pomocy ServletContext................................................................................................ 268Wspdzielenie z innym ServletContext........................................................................................................ 270

    DZIELENIE KONTROLI..............................................................................................................................................270Pobieranie dyspozytora da......................................................................................................................271Dyspozycja przekazaniem............................................................................................................................. 271Przekazanie czy przekierowanie................................................................................................................... 273

  • Dyspozycja doczania................................................................................................................................. 274

    ROZDZIA 12. SERWLETY KORPORACYJNE I J2EE.............................................................................277

    DYSTRYBUCJA ADUNKU.........................................................................................................................................277Jak by dystrybuowalnym............................................................................................................................. 278Wiele stylw dystrybucji................................................................................................................................279

    INTEGRACJA Z J2EE.............................................................................................................................................. 279Podzia pracy w J2EE...................................................................................................................................280Pozycje rodowiskowe.................................................................................................................................. 280Odwoania do elementw EJB......................................................................................................................282Odwoania do zewntrznych fabryk zasobw............................................................................................... 282Dystrybucja serwletw w rodowisku J2EE................................................................................................. 283

    ROZDZIA 13. INTERNACJONALIZACJA................................................................................................. 284

    JZYKI ZACHODNIOEUROPEJSKIE................................................................................................................................284Encje znakowe HTML................................................................................................................................... 285Kody ucieczkowe Unicode............................................................................................................................ 286

    HODOWANIE LOKALNYM ZWYCZAJOM...................................................................................................................... 287JZYKI SPOZA EUROPY ZACHODNIEJ......................................................................................................................... 288

    Kodowanie.................................................................................................................................................... 288Tworzenie wynikw zakodowanych.............................................................................................................. 289Odczyt i zapis wynikw zakodowanych........................................................................................................ 290

    WIKSZA ILO JZYKW........................................................................................................................................291UCS-2 i UTF-8..............................................................................................................................................291Tworzenie UTF-8.......................................................................................................................................... 292

    DYNAMICZNA NEGOCJACJA JZYKA........................................................................................................................... 293Preferencje jzykowe.................................................................................................................................... 294Preferencje kodowania................................................................................................................................. 294Pakiety zasobw............................................................................................................................................294Wywietlanie odpowiednich informacji........................................................................................................ 295Klasa LocaleNegotiator................................................................................................................................296Lokalizacje dostarczane przez system...........................................................................................................299

    FORMULARZE HTML............................................................................................................................................299Ukryte kodowanie......................................................................................................................................... 300

    ROZDZIA 14. SZKIELET TEA......................................................................................................................304

    JZYK TEA........................................................................................................................................................... 304POCZTKI............................................................................................................................................................. 305INFORMACJA O DANIU..........................................................................................................................................306

    Siganie gbiej.............................................................................................................................................307ADMINISTRACJA TEA..............................................................................................................................................308

    Skompilowane szablony: szansa dla biznesu................................................................................................311ZASTOSOWANIA TEA.............................................................................................................................................. 312

    Przetwarzanie tekstu..................................................................................................................................... 312Obsuga zawartoci.......................................................................................................................................313Obsuga da/odpowiedzi...........................................................................................................................314Tworzenie aplikacji Tea................................................................................................................................315

    APLIKACJA NARZDZIA....................................................................................................................................... 317OSTATNIE SOWO...................................................................................................................................................324

    ROZDZIA 15. WEBMACRO..........................................................................................................................325

    SZKIELET WEBMACRO...........................................................................................................................................325Powitanie przy pomocy WebMacro.............................................................................................................. 326

    INSTALACJA WEBMACRO....................................................................................................................................... 328Jzyk szablonw WebMacro......................................................................................................................... 329Narzdzia kontekstu WebMacro................................................................................................................... 330

    INSTRUKCJE WEBMACRO....................................................................................................................................... 332#if.................................................................................................................................................................. 332#set................................................................................................................................................................ 332#foreach........................................................................................................................................................ 332#parse............................................................................................................................................................333

  • #include.........................................................................................................................................................333#param.......................................................................................................................................................... 333#use............................................................................................................................................................... 333

    SZABLONY WEBMACRO......................................................................................................................................... 334Gotowy do ponownego wykorzystania serwlet MacroPrzegl....................................................................... 335Przetwarzanie szablonw..............................................................................................................................337

    APLIKACJA NARZDZIA....................................................................................................................................... 337FILTRY................................................................................................................................................................. 341

    Filtry niestandardowe...................................................................................................................................341

    ROZDZIA 16. ELEMENT CONSTRUCTION SET.....................................................................................342

    ELEMENTY STRONY JAKO OBIEKTY............................................................................................................................342WYWIETLANIE ZBIORU WYNIKW............................................................................................................................ 343

    Dostosowywanie wywietlania......................................................................................................................345

    ROZDZIA 17. XMLC.......................................................................................................................................351

    PROSTA KOMPILACJA XML.................................................................................................................................... 351KLASA MANIPULACYJNA..........................................................................................................................................358

    Modyfikacja listy...........................................................................................................................................359APLIKACJA NARZDZIA....................................................................................................................................... 361

    ROZDZIA 18. JAVASERVER PAGES..........................................................................................................367

    WYKORZYSTYWANIE JAVASERVER PAGES................................................................................................................. 368ZASADY DZIAANIA................................................................................................................................................ 369WYRAENIA I DEKLARACJE......................................................................................................................................371INSTRUKCJE.......................................................................................................................................................... 371

    Wykorzystanie instrukcji............................................................................................................................... 372Unikanie kodu Javy na stronach JSP........................................................................................................... 374

    JSP I JAVABEANS................................................................................................................................................. 375Osadzanie komponentu Bean........................................................................................................................375Kontrola parametrw komponentu...............................................................................................................377Powitania przy pomocy komponentu............................................................................................................ 377

    DOCZENIA I PRZEKAZANIA....................................................................................................................................379APLIKACJA NARZDZIA....................................................................................................................................... 380BIBLIOTEKI WASNYCH ZNACZNIKW.........................................................................................................................383

    Stosowanie bibliotek wasnych znacznikw..................................................................................................383Aplikacja Narzdzia wykorzystujca bibliotek wasnych znacznikw....................................................385

    ROZDZIA 19. INFORMACJE DODATKOWE........................................................................................... 387

    ANALIZA PARAMETRW...........................................................................................................................................387Kod ParameterParser...................................................................................................................................388

    WYSYANIE POCZTY ELEKTRONICZNEJ.......................................................................................................................391Stosowanie klasy MailMessage.....................................................................................................................391Wysyanie poczt danych formularza........................................................................................................... 392

    STOSOWANIE WYRAE REGULARNYCH......................................................................................................................392Odnajdywanie cz przy pomocy wyrae regularnych............................................................................... 393

    URUCHAMIANIE PROGRAMW...................................................................................................................................396Finger............................................................................................................................................................396Uruchamianie polecenia finger.................................................................................................................... 396Uruchamianie finger z argumentami............................................................................................................397Uruchamianie finger z przekierowywanym wynikiem.................................................................................. 398

    STOSOWANIE RDZENNYCH METOD............................................................................................................................. 398WYSTPOWANIE JAKO KLIENT RMI..........................................................................................................................399USUWANIE BDW............................................................................................................................................... 400

    Sprawdzenie dziennikw zdarze..................................................................................................................400Wywietlenie dodatkowych informacji..........................................................................................................401Stosowanie standardowego programu uruchomieniowego..........................................................................401Analiza dania klienta.................................................................................................................................402Utworzenie wasnego dania klienta.......................................................................................................... 403Wykorzystanie niezalenego narzdzia......................................................................................................... 405Ostatnie wskazwki.......................................................................................................................................405

  • POPRAWA WYDAJNOCI........................................................................................................................................... 406Tworzy, ale nie przesadza......................................................................................................................... 406Nie czy...................................................................................................................................................... 406Ogranicza synchronizacj...........................................................................................................................406Buforowa dane wprowadzane i wywietlane.............................................................................................. 407Sprbowa wykorzystania OutputStream..................................................................................................... 407Wykorzysta narzdzie profilujce............................................................................................................... 407

    ROZDZIA 20. ZMIANY W SERVLET API 2.3............................................................................................408

    ZMIANY W SERVLET API 2.3................................................................................................................................. 408Serwlety w J2SE i J2EE................................................................................................................................ 409Filtry............................................................................................................................................................. 409Zdarzenia okresu trwaoci...........................................................................................................................411Wybranie kodowania znakw....................................................................................................................... 413Zalenoci plikw JAR.................................................................................................................................. 413Mechanizmy adowania klas.........................................................................................................................414Nowe atrybuty bdw.................................................................................................................................. 414Nowe atrybuty bezpieczestwa..................................................................................................................... 416Niewielkie poprawki......................................................................................................................................417Wyjanienia deskryptora DTD......................................................................................................................418

    KONKLUZJA.......................................................................................................................................................... 418

    DODATEK A. KRTKI OPIS SERVLET API...............................................................................................419

    GenericServlet...............................................................................................................................................419RequestDipatcher..........................................................................................................................................422Servlet........................................................................................................................................................... 423ServletConfig.................................................................................................................................................423ServletContext............................................................................................................................................... 424ServletException........................................................................................................................................... 428ServletInputStream........................................................................................................................................429ServletOutputStream.....................................................................................................................................429ServletRequest...............................................................................................................................................430ServletResponse............................................................................................................................................ 434SingleThreadModel.......................................................................................................................................436UnavailableException ..................................................................................................................................437

    DODATEK B. KRTKI OPIS HTTP SERVLET API................................................................................... 439

    Cookie........................................................................................................................................................... 440HttpServlet.................................................................................................................................................... 443HttpServletRequest........................................................................................................................................445HttpServletResponse..................................................................................................................................... 448HttpSession................................................................................................................................................... 452HttpSessionBindingEvent..............................................................................................................................454HttpSessionBindingListener..........................................................................................................................455HttpSessionContext.......................................................................................................................................456HttpUtils........................................................................................................................................................456

    DODATEK C. KRTKI OPIS DESKRYPTORW DTD.............................................................................458

    ........................................................................................................................................ 462.............................................................................................................................................463..........................................................................................................................................463............................................................................................................................................... 463............................................................................................................................................463.............................................................................................................................................463.....................................................................................................................................................464...................................................................................................................................................... 464............................................................................................................................................ 464.............................................................................................................................................. 465.................................................................................................................................................. 465........................................................................................................................................ 465.......................................................................................................................................... 465

  • ........................................................................................................................................ 466................................................................................................................................................466................................................................................................................................................466..........................................................................................................................................466.................................................................................................................................................. 467.......................................................................................................................................467.....................................................................................................................................467.......................................................................................................................................467........................................................................................................................................................ 468..............................................................................................................................................468.......................................................................................................................................................... 468................................................................................................................................................ 468...................................................................................................................................................... 469................................................................................................................................................ 469........................................................................................................................................469.................................................................................................................................................... 469............................................................................................................................................. 470......................................................................................................................................... 470................................................................................................................................................ 470.............................................................................................................................................470.............................................................................................................................................470..............................................................................................................................................471...................................................................................................................................................... 471....................................................................................................................................................471............................................................................................................................................ 471.................................................................................................................................................... 472............................................................................................................................................. 472................................................................................................................................................... 472.................................................................................................................................................472...................................................................................................................................473.............................................................................................................................................473.......................................................................................................................................473.......................................................................................................................................................473............................................................................................................................................. 474....................................................................................................................................... 474............................................................................................................................................ 474.......................................................................................................................................... 474........................................................................................................................................ 475................................................................................................................................................ 475........................................................................................................................................................475......................................................................................................................................... 475..................................................................................................................................................476.................................................................................................................................476................................................................................................................................................476................................................................................................................................ 476.................................................................................................................................................. 477.......................................................................................................................... 477................................................................................................................................. 477.............................................................................................................................................478.......................................................................................................................................478

    DODATEK D. KODY STANU HTTP.............................................................................................................. 479

    DODATEK E. ENCJE ZNAKOWE..................................................................................................................484

    DODATEK F. KODOWANIA...........................................................................................................................488

  • O Autorach

    Jason Hunter jest starszym technologiem w firmie CollabNet (http://collab.net), firmie dostarczajcej narzdzia iusugi dla wsppracy Open Source. Oprcz bycia autorem ksiki Java Servlet programowanie jest takeredaktorem witryny Servlets.com, twrc biblioteki com.oreilly.servlet, wsppracownikiem projektu ApacheJakarta, ktry tworzy serwer Tomcat (od czasw, kiedy projekt by jeszcze wewntrzn czci firmy Sun),czonkiem grupy ekspertw odpowiedzialnej za tworzenie API Servlet/JSP i JAXP oraz jest czonkiem KomitetuWykonawczego JCP nadzorujcego platform Javy, jako reprezentant Apache Software Foundation. Piszerwnie artykuy dla JavaWorld oraz przemawia na wielu konferencjach programistycznych i Open Source. Wostatnich czasach wsptworzy bibliotek Open Source JDOM (http://jdom.org), pozwalajc na optymalizacjintegracji Javy i XML oraz przewodzi grupie ekspertw odpowiedzialnej za tworzenie JDOM.

    Jason poprzednio peni funkcj gwnego technologa w firmie K&A Software, specjalizujcej si w treningach ikonsultacjach zwizanych z Jav i dziaa jako wynajty ekspert dla wielu przedsibiorstw wczajc w to SunMicrosystems. Jeszcze wczeniej pracowa w Silicon Graphics, gdzie by odpowiedzialny za tworzenie (iniszczenie) rnego rodzaju technologii WWW.

    Jason ukoczy z najwyszym wyrnieniem kierunek nauki komputerowe w Willamette University (Salem,Oregon) w 1995. Rozpocz programowanie w Javie w lecie 1995, a z serwletami i innymi technologiamiprogramowania po stronie serwera jest zwizany od grudnia 1996. Jeeli jakim cudem nie pracuje,przypuszczalnie mona go znale na grskiej wdrwce.

    William Will Crawford zwiza si z tworzeniem stron WWW w 1995. Pracowa przy programieinformatycznym szpitala Children's Hospital w Bostonie, gdzie pomaga przy tworzeniu pierwszegoelektronicznego systemu zapisw medycznych opartego na sieci WWW i by zwizany z jednymi z pierwszychkorporacyjnych zastosowa jzyka Java. By konsultantem projektw sieci Intranet w midzy innymi Children'sHospital w Massachusetts, General Hospital w Brigham, Women's Hospital, Boston Anesthesia EducationFoundation i Harvard Medical Center.

    Will obecnie przewodzi zespoowi projektanckiemu w firmie Invantage, Inc. w Cambridge, Massachusetts, ktratworzy oparte na Javie narzdzia intranetowe dla przemysu farmaceutycznego. W wolnym czasie jest zapalonymamatorem fotografii, pisarzem i studentem ekonomii na Yale University.

  • Wstp

    Od czasu, kiedy napisane zostao pierwsze wydanie niniejszej ksiki, serwlety i platforma Javy dziaajca postronie serwera zyskaa popularno, ktrej nie mona byo spodziewa si w najmielszych marzeniach.Postpuje przyczanie tych mechanizmw do istniejcych. Producenci serwerw WWW oferuj obecnieobsug serwletw jako standardow wasno swojego oprogramowania. W specyfikacji Java 2, EnterpriseEdition (J2EE) serwlety istniej jako podstawowy skadnik, a niemoliwym jest obecnie znalezienie producentaserwerw aplikacji, ktrego produkt nie zawieraby skalowalnej implementacji serwletw. Jest to jednak wicejni zjawisko napdzane przez producentw. Serwlety stay si podstaw dla JavaServer Pages (JSP) i innychszkieletw tworzenia stron WWW, a technologia serwletw obsuguje aktualnie tak czsto odwiedzane witryny,jak ESPN.com i AltaVista.com.

    W zwizku z tym nie jest zaskakujcym fakt, e krajobraz serwletw wyglda nieco inaczej ni w czasachpierwszego wydania. Interfejs serwletw (Servlet API) zosta poddany dwm przegldom, a trzeci jest w trakcieprzygotowa. Znajome z pocztkw istnienia serwletw firmy Live Software i New Atlanta, ktre niegdyzarabiay sprzedajc mechanizmy serwletw (nazywane teraz kontenerami serwletw) Jrun i ServletExec, zostayzauwaone i wykupione przez wiksze firmy zorientowane na WWW, odpowiednio przez Allaire i Unify.Oferuj one teraz wiele wasnoci wykraczajcych poza podstawow obsug serwletw w celu odrnienia siod innych.

    Co dziwne, oficjalne pakiety javax.servlet i javax.servlet.http byy pierwszymi klasami Javy,ktre zostay oficjalnie rozprowadzone jako Open Source. Zostay one przeniesione do projektu ApacheSoftware Foundation (ASF), i mona je aktualnie odnale pod adresem http://jakarta.apache.org. Pakiety tedalej zgodne s ze specyfikacj Servlet API, jednak poprawa bdw i uaktualnianie specyfikacji znajduje siteraz w rkach w zaufanych programistw Open Source wczajc autora, ktry mia niedawno okazjpoprawienia obsugi warunkowego dania GET w HttpServlet. Dodatkowo, serwer, ktry jest traktowanyjako wzorcowa implementacja Servlet API, zosta rwnie przeniesiony do ASF i udostpniony jako OpenSource pod nazw Apache Tomcat. Od tego czasu Tomcat sta si jednym z najpopularniejszych kontenerwserwletw. Wiksza ilo informacji na ten temat dostpna jest pod adresem http://opensource.org.

    wiat serwletw zmieni si, a niniejsza ksika zawiera uaktualnione informacje. Ca wiedz potrzebn doprogramowania serwletw Javy, od pocztku do koca. Pierwsze pi rozdziaw opisuje podstawy czym sserwlety, jakie dziaania wykonuj oraz w jaki sposb pracuj. Nastpne 15 rozdziaw zawiera informacjezaawansowane opisuje dziaania podejmowane najczciej przy pomocy serwletw oraz najpopularniejszenarzdzia do tego suce. Mona tam znale wiele przykadw, kilka wskazwek i ostrzee, a nawet opisykilku prawdziwych bdw, ktre umkny uwagi korektorw technicznych.

    Servlet API 2.2Niniejsze wydanie ksiki opisuje wersj 2.2 Servlet API, ktra osigna stan wersji publicznej w sierpniu1999, a stan wersji ostatecznej w grudniu 1999. Wydanie pierwsze opisywao wersje 2.0. Zmiany pomidzywersjami 2.0 i 2.2 s znaczne:

    Zostay wprowadzone zasady definiujce dystrybucje serwletw pomidzy kilkoma serweramiwspierajcymi.

  • Serwlety korzystaj aktualnie z doczanych aplikacji WWW, ktre mog by konfigurowane iwdraane w sposb niezaleny od serwera.

    Znacznie poprawione zostao bezpieczestwo serwletw.

    Serwlety mog teraz przekazywa obsug da innym skadnikom serwera.

    Serwlety mog teraz dzieli si informacjami przy pomocy ich ServletContext Istnieje sposb przystosowania serwletw do obsugi dostpu rozproszonego.

    Serwlety posiadaj teraz cilejsz kontrol nad zarzdzaniem sesj.

    Dodane zostao buforowanie odpowiedzi.

    Rozszerzona zostaa kontrola nad nagwkami HTTP.

    Aktualnie moe by zastosowana bardziej zaawansowana obsuga bdw.

    API zosta wyczyszczony w celu nadania wikszej spjnoci i przewidywalnoci nazwom metod.

    Servlet API jest teraz zdefiniowany poprzez formalny dokument specyfikacji, a przysze uaktualnieniaAPI s zarzdzane przez formalny proces Java Specification Request (JSR).

    Serwlety s teraz zintegrowane z podstawow specyfikacj platformy Java 2, Enterpise Edition (J2EE).Wszystkie te zmiany, oraz wiele innych drobnych usprawnie, s w peni opisane w niniejszym nowym wydaniu.Drugie wydanie zawiera rwnie obszerny opis najciekawszego obszaru programowania serwletw techniktworzenia prawdziwych dynamicznych witryn opartych na serwletach. W niniejszym wydaniu znajduj sisamouczki piciu najpopularniejszych technologii tworzenia zawartoci opartej na serwletach, nalecych doOpen Source:

    JavaServer Pages (JSP), standard firmy Sun, tworzony i udostpniany w poczeniu z serwletami

    Tea, technologia utworzona przez Walt Disney Internet Group (dawniej GO.com), zastosowany w wielubardzo czsto odwiedzanych stronach, takich jak ESPN.com, NFL.com, Disney.com, DisneyLand.com,GO.com i Movies.com

    WebMacro, utworzony przez Semiotek i wykorzystywany przez wyszukiwark AltaVista

    XMLC, utworzony przez Lutris Technologies w celu udostpnienia mocy technologii XML sieciWWW, wykorzystywany przez innowacyjne witryny takie jak customatix.com

    Element Construcion Set (ECS), utworzony przez Apache w celu obsugi najbardziej wymagajcychpotrzeb programistycznych

    Niniejsze drugie wydanie opisuje rwnie WAP, Wireless Application Protocol (Protok AplikacjiBezprzewodowych) oraz wyjania, jak tworzy oparte na serwletach aplikacje WWW dla urzdzebezprzewodowych.

    Servlet API 2.3W czasie pisania niniejszej ksiki, Servlet API 2.3 jest w trakcie tworzenia. Jednak nie zosta on jeszczeukoczony. W zwizku z tym tekst niniejszego wydania zawiera w rnych miejscach krtkie uwagi na tematzmian spodziewanych w z Servlet API 2.3. Dodatkowo, ostatni rozdzia ksiki zawiera dokadniejszy opisprbnej specyfikacji Servlet API 2.3, udostpnionej w padzierniku 2000, ktry pozwala na zapoznanie si znajnowszymi wasnociami Servlet API 2.3. Naley jednak zaznaczy, e specyfikacje te cigle podlegajzmianom, a ostateczna wersja moe si nieco rni od materiau tu przedstawionego.

    Czytelnicy pierwszego wydaniaCzytelnicy ksiki Java Servlet Programming, 1st ed. zorientuj si, e niniejsza ksika zostaa obszernieuaktualniona do Servlet API 2.2 i, gdzie to tylko moliwe, Servlet 2.3. Kady rozdzia zosta znaczcopoprawiony w porwnaniu z pierwszym wydaniem, a take dodano sze nowych rozdziaw opisujcychtechniki tworzenia zawartoci opartej na serwletach, jak rwnie nowy rozdzia sidmy, Serwlety korporacyjne iJ2EE, ktry opisuje integracj serwletw w platformie J2EE.

    Ze wzgldu na znaczcy wpyw modelu aplikacji WWW na wszystkie aspekty programowania serwletw, polecasi czytelnikom pierwszego wydania przeczytanie kadego interesujcego ich rozdziau oraz zwrcenie uwagi na

  • nowe mechanizmy, ktre pozwalaj na wykonanie tradycyjnych zada. Czytelnicy dysponujcy ograniczonymczasem powinni przejrze list najbardziej znaczcych zmian w podrozdziale Organizacja.

    CzytelnicyDla kogo jest ta ksika? Dla osb zainteresowanych tworzeniem aplikacji umieszczanych w sieci WWW.Dokadniej rzecz biorc, niniejsz ksik powinni zainteresowa si:

    Programici J2EE serwlety s integraln czci standardu Java 2, Enterpise Edition. Programicitworzcy aplikacje dla serwerw J2EE mog nauczy si jak najlepiej zintegrowa serwlety z innymipodobnymi technologiami.

    Programici JSP JavaServer Pages (JSP) tworzone s na podstawie serwletw. Wykorzystanie penejmocy JSP wymaga zrozumienia serwletw, co te umoliwia niniejsza ksika. Zawiera ona rwniesamouczek JSP oraz czterech podstawowych konkurencyjnych technologii.

    Programici apletw Javy porozumiewanie si apletw z serwerem zawsze sprawiao problemy.Serwlety uatwiaj to zadanie poprzez dostarczenie apletom prostego w poczeniu agenta na serwerze.

    Programici CGI CGI jest popularn metod rozszerzania funkcjonalnoci serwera WWW. Serwletys eleganck i wydajn alternatyw tej techniki.

    Programici innych technik serwerw istnieje wiele alternatyw dla CGI, midzy innymi FastCGI,PHP, NSAPI, WAI, ISPAI, ASP, a teraz ASP+. Kada z nich posiada ograniczenia zwizane zprzenonoci, bezpieczestwem, wydajnoci i/lub integracj z innymi rdami danych. Serwletyprzewyszaj je w kadym z tych obszarw.

    Co naley wiedziePodczas rozpoczynania pracy z niniejsz ksik, niespodziank dla autorw okazao si, e jedn znajtrudniejszych do okrelenia rzeczy jest docelowy czytelnik. Czy zna on Jav? Czy ma dowiadczenie wprogramowaniu CGI lub innych aplikacji WWW? Czy mia ju kontakt z serwletami? Czy zna HTTP i HTML,czy te skrty brzmi dla niego zupenie niezrozumiale? Niezalenie od przyjmowanego poziomu dowiadczenia,zawsze okazywao si, e ksika bdzie zbyt uproszczona dla jednych uytkownikw, a zbyt zaawansowana dladrugich.

    Ostatecznie zdecydowano si na zasad, e niniejsza ksika powinna zawiera w przewaajcej czci materiaoryginalny mona pomin obszerne opisy tematw i koncepcji dobrze opisanych w sieci lub innychksikach. W tekcie znale mona odwoania do tych zewntrznych rde informacji.

    Oczywicie zewntrzne rda informacji nie s wystarczajce. Niniejsza ksika zakada, e czytelnicy dobrzeznaj jzyk Java oraz podstawowe techniki programowania obiektowego. Jeeli nie spenia si tych zaoe,polecane jest przygotowanie si poprzez przeczytanie oglnej ksiki na temat programowania w Javie, takiej jakLearning Java autorstwa Patricka Niemeyera i Jonathana Knudsena (O'Reilly). W ksice tej mona jedyniekrtko zapozna si z rozdziaami na temat apletw i programowania Swing (graficznego), a skupi si na sieci iprogramowaniu wielowtkowym. Aby zacz od razu nauk serwletw i uczy si Javy w trakcie, polecane jestprzeczytanie niniejszej ksiki rwnoczenie z Java in a Nutshell autorstwa Davida Flanagana (O'Reilly) lubinnym podrcznikiem.

    Niniejsza ksika nie wymaga od czytelnikw dowiadczenia w programowaniu WWW, HTTP i HTML. Niezawiera jednak penego wprowadzenia lub wyczerpujcego opisu tych technologii. Opisane zostan podstawypotrzebne do efektywnego programowania serwletw, a szczegy (takie jak pena lista znacznikw HTML inagwkw HTTP 1.1) pozostawione zostan innym rdom.

    PrzykadyW niniejszej ksice znale mona ponad 100 przykadw serwletw. Ich kod jest cakowicie zawarty wewntrztekstu, moliwe jest jednak take pobranie przykadw zamiast rcznego ich wpisywania. Kod przykadw,spakowany i gotowy do pobrania, mona znale pod adresem http://www.oreilly.com/catalog/jservlet2. Wiele ztych serwletw mona zobaczy w dziaaniu pod adresem http://www.servlets.com.

    Wszystkie przykady zostay przetestowane przy pomocy serwera Apache Tomcat 3.2 dziaajcego w trybiesamodzielnym, wirtualnej maszyny Javy (Java Virtual Machine JVM) zawartej w Java Development KIT1.1.8 i 1.2.2, zarwno pod Windows jak i Uniksem. Kilka zaawansowanych przykadw wymaga wasnoci,

  • ktrych nie obsuguje Tomcat w trybie samodzielnym. W tym przypadku przykady byy testowane na rnychinnych serwerach, jak opisano w tekcie. Serwer Apache Tomcat jest oficjaln wzorcow implementacj ServletAPI, i jest dostpny w licencji Open Source pod adresem http://jakarta.apache.org.

    Niniejsza ksika zawiera rwnie zbir klas narzdziowych wykorzystywane s one przez serwletyprzykadowe, mog si take okaza przydatne przy tworzenie wasnych. Klasy te zawarte s w pakieciecom.oreilly.servlet. Midzy innymi s to klasy pomagajce serwletom w analizie parametrw, obsudzewysyania plikw, generowaniu wieloczciowych odpowiedzi (przepychanie serwera), negocjacji ustawielokalnych i internacjonalizacji, zwracaniu plikw, zarzdzaniu poczeniami i pracy jako serwer RMI. Pakiet tezawiera rwnie klas wspomagajc komunikacj apletw z serwletami. Od czasu pierwszego wydania dodanezostay nowe klasy pomagajce serwletom w wysyaniu wiadomoci poczty elektronicznej, przechowywaniuodpowiedzi w pamici podrcznej oraz automatycznym wykrywaniu obsugi Servlet API. Kod rdowywikszoci pakietu com.oreilly.servlet zawarty jest w tekcie, a pena, aktualna wersja jest dostpna wformie elektronicznej (razem z dokumentacj javadoc) pod adresem http://www.servlets.com.1

    OrganizacjaNiniejsza ksika skada si z 20 rozdziaw i 6 dodatkw, s one nastpujce:

    Rozdzia 1, Wprowadzenie. Wyjania rol i zalety serwletw Javy w tworzeniu aplikacji WWW. Wdrugim wydaniu dodane zostay dodatkowe informacje na temat serwerw.

    Rozdzia 2, Podstawy serwletw HTTP. Zawiera krtkie wprowadzenie do HTTP i funkcji, jakiemog peni serwlety HTTP. Przedstawia tworzenie prostej strony i wprowadza pojcie doczanejaplikacji WWW. Drugie wydanie opisuje aplikacje WWW i ich deskryptory oparte na XML.

    Rozdzia 3, Cykl ycia serwletw. Wyjania szczegowe informacje na temat sposobu i czasuadowania serwletw, sposobu i czasu ich wykonywania, zarzdzania wtkami oraz obsugi kwestiisynchronizacji w systemie wielowtkowym. Opisane s rwnie stany trwae. Drugie wydanie zawieranowe zasady kontekstowego przeadowywania i rejestracji serwletw, nowy podrozdzia na tematpamici podrcznej po stronie serwera oraz uwag na temat super.init(config).

    Rozdzia 4, Pobieranie informacji. Wprowadza najpopularniejsze metody wykorzystywane przezserwlety w celu pobrania informacji na temat klienta, serwera, da klienta oraz samego siebie.Przedstawia rwnie dziaanie oglnej klasy sucej do wysyania plikw. Drugie wydanie opisujeustawianie informacji w deskryptorze, pobieranie nazwy serwletu, dostp do katalogw tymczasowych,obsug kontekstowych parametrw pocztkowych, okrelanie wersji Servlet API, przypisywanieodwzorowania serwletw oraz dostp do zasobw abstrakcyjnych. Przestawia rwnie poprawiony,bardziej elastyczny skadnik sucy do wysyania plikw.

    Rozdzia 5, Wysyanie informacji HTML. Opisuje sposoby tworzenia kodu HTML przez serwlet,zwracania bdw, buforowania odpowiedzi, przekierowywania da, zapisywania danych w dziennikuzdarze serwera oraz wysyania dostosowanych nagwkw HTML. Drugie wydanie zawiera nowy opisbuforowania odpowiedzi, bardzo przydatny przykad przekierowywania oraz nowe podrozdziay natemat konfiguracji stron zawierajcych bdy i obsugi bdw.

    Rozdzia 6, Wysyanie zawartoci multimedialnej. Opisuje rne interesujce dane, ktre moezwraca serwlet zawarto WAP/WML dla urzdze bezprzewodowych, dynamicznie tworzoneobrazki, zawarto skompresowana oraz odpowiedzi wieloczciowe. W drugim wydaniu dodano opisWAP/WML, listy plikw powitalnych, dyskusj na temat PNG, usprawnion pami podrcznrysunkw po stronie serwera oraz wicej szczegw na temat tworzenia zawartoci skompresowanej.

    Rozdzia 7, ledzenie sesji. Opisuje sposoby tworzenia ledzenia stanu w bezstanowym protokoleHTTP. Pierwsza cz rozdziau opisuje tradycyjne techniki ledzenia sesji stosowane przezprogramistw CGI. Druga cz opisuje sposoby zastosowania wbudowanej w Servlet API obsugi

    1 Niniejsza ksika nie zawiera CD-ROM-u. Doczenie CD-ROM-u podnosi koszty produkcji a w zwizku z tym cenksiki. Zaoono, e kady Czytelnik posiada dostp do Internetu, a w zwizku z tym moe oszczdzi pewn ilopienidzy poprzez pobranie kodu przykadw przez sie WWW. Nie uwaa si rwnie za sensowne doczanie wersjiprbnych rnych serwerw WWW i aplikacji. Zwaywszy na nieustanny szybki postp na rynku serwletw, doczoneserwery stayby si przestarzae jeszcze przed wydrukowaniem ksiki. Te same wersje prbne dostpne s w sieci i polecasi pobranie ich wasnorcznie. Prosz pamita, e jeeli zamierza si czyta niniejsz ksik offline, polecane jestpobranie kodu przykadw i serwera WWW Apache Tomcata, kiesy tylko bdzie to moliwe. cza do pobra umieszczones pod adresem http://www.servlets.com.

  • ledzenia sesji. Drugie wydanie zawiera zasady tworzenia sesji aplikacji WWW, materia na tematnowych nazw metod sesji, dyskusj na temat zarzdzania przekraczaniem czasu oraz ledzenie sesjioparte na apletach.

    Rozdzia 8, Bezpieczestwo. Wyjania kwestie bezpieczestwa zwizane z programowanierozproszonym. Opisuje sposoby korzystania ze standardowych funkcji serwletw zwizanych zzarzdzaniem kontami uytkownikw oraz sposoby tworzenia bardziej zaawansowanego systemu przypomocy dodatkowego uwierzytelniania i autoryzacji. Wyjani rwnie rol serwletw w bezpiecznejkomunikacji SSL. W drugim wydaniu cakowicie przeredagowany.

    Rozdzia 9, czno z bazami danych. Opisuje sposoby wykorzystania serwletw w wysokowydajnejcznoci z bazami danych WWW. Zawiera samouczek JDBC. Drugie wydanie zawiera przykadykonfiguracji pocze z plikami waciwoci, nowy przykad ksigi goci oraz nowy podrozdziaopisujcy JDBC 2.0.

    Rozdzia 10, Komunikacja aplet-serwlet. Opisuje sposoby wykorzystania serwletw przez aplet, ktrymusi porozumie si z serwerem. Uaktualniony w drugim wydaniu.

    Rozdzia 11, Wsppraca serwletw. Opisuje powody komunikacji serwletw i sposoby ichwsppracy przez dzielenie si informacjami lub wywoywanie sienie nawzajem. W drugim wydaniucakowicie przeredagowany.

    Rozdzia 12, Serwlety korporacyjne i J2EE. Opisuje zaawansowane wasnoci serwletwwykorzystywane w witrynach korporacyjnych dystrybucj adunku i integracj skadnikw J2EE.Nowo w drugim wydaniu.

    Rozdzia 13, Internacjonalizacja. Opisuje sposoby, dziki ktrym serwlet moe odczytywa i tworzyzawarto w rnych jzykach. Drugie wydanie opisuje zastosowanie javadoc w zarzdzaniukodowaniem i sposoby wykorzystywania nowych metod API w zarzdzaniu wersjami lokalnymi.

    Rozdzia 14, Szkielet Tea. Przedstawia szkielet Tea, elegancki, ale zarazem potny mechanizmszablonw. Nowo w drugim wydaniu.

    Rozdzia 15, WebMacro. Opisuje szkielet WebMacro, podobny do Tea lecz z kilkoma innymidecyzjami projektanckimi. Nowo w drugim wydaniu.

    Rozdzia 16, Element Construction Set. Zawiera krtki opis ECS, obiektowego podejcia dotworzenia strony. Nowo w drugim wydaniu.

    Rozdzia 17, XMLC. Przegld XMLC, podejcia do tworzenia strony opartego na XML. Nowo wdrugim wydaniu.

    Rozdzia 18, JavaServer Pages. Wyjania JSP, standardow technologi firmy Sun, w ktrej stronyWWW s automatycznie wkompilowane w serwer. Nowo w drugim wydaniu.

    Rozdzia 19, Informacje dodatkowe. Przedstawia dodatkowe przykady serwletw i podpowiedzi,ktre nie zmieciy si w adnym z poprzednich rozdziaw. Drugie wydanie zawiera analizatorparametrw zlokalizowanych, now klas poczty elektronicznej oraz uaktualniony podrozdzia na tematwyrae regularnych, nowy podrozdzia na temat dodatkowych narzdzi oraz dodatkowe podpowiedzina temat wydajnoci.

    Rozdzia 20, Zmiany w Servlet API 2.3. Opisuje zmiany w nadchodzcej wersji 2.3 Servlet API,ktry ma zosta udostpniony w poowie 2001. Nowo w drugim wydaniu.

    Dodatek A, Krtki opis Servlet API. Zawiera peny opis klas, metod i zmiennych w pakieciejavax.servlet. W drugim wydaniu uaktualniony do Servlet API 2.2

    Dodatek B, Krtki opis HTTP Servlet API. Zawiera peny opis klas, metod i zmiennych w pakieciejavax.servlet.http. W drugim wydaniu uaktualniony do Servlet API 2.2

    Dodatek C, Krtki opis deskryptorw DTD. Przedstawia opis deskryptora Document Type Definition(Definicja Typu Dokumentu) web.xml. Nowo w drugim wydaniu.

    Dodatek D, Kody stanu HTTP. Lista kodw stanu okrelonych przez HTTP, a take staemnemoniczne wykorzystywane przez serwlety.

    Dodatek E, Encje znakowe. Lista encji znakowych zdefiniowanych w HTML, a take rwnowane donich wartoci kodw ucieczkowych Uniksa.

  • Dodatek F, Kodowania. Lista sugerowanych kodowa wykorzystywanych przez serwlety w celutworzenia zawartoci w rnych jzykach.

    Prosz czu si swobodnie i czyta rozdziay w niniejszej ksice w dowolnej kolejnoci. Czytanie prosto odpocztku do koca zapewnia uniknicie wszelkich niespodzianek, jako e starano si unika odwoa dodalszych czci ksiki. Przeskakiwanie jest jednak moliwe, zwaszcza po rozdziale 5 pozostaa czrozdziaw zostaa zaprojektowana w celu oddzielonego istnienia. Jedna ostatnia sugestia prosz przeczytapodrozdzia Usuwanie bdw w rozdziale 19, jeeli kiedykolwiek napotka si fragment kodu pracujcynieprawidowo.

    Konwencje wykorzystywane w tej ksiceKursywa wykorzystywana jest do:

    cieek, nazw plikw i programw

    Nowych terminw podczas ich definiowania

    Adresw internetowych, takich jak nazwy domen i URL-eCzcionka pogrubiona wykorzystywana jest do:

    Konkretnych klawiszy na klawiaturze

    Nazw przyciskw interfejsu uytkownika i menuCzcionka o staej szerokoci wykorzystywana jest do:

    Wszystkich danych pojawiajcych si dokadanie w programie Javy, takich jak sowa kluczowe, typydanych, stae, nazwy metod, zmienne, nazwy klas oraz nazwy interfejsw

    Wszystkich wydrukw kodu Javy

    Dokumentw H