Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00220 007399 11068542 na godz. na dobę w sumie
Core Java Servlets i JavaServer Pages. Tom II. Wydanie II - książka
Core Java Servlets i JavaServer Pages. Tom II. Wydanie II - książka
Autor: , , Liczba stron: 632
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-1726-5 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> jsp i javaservlet - programowanie
Porównaj ceny (książka, ebook (-87%), audiobook).

Kompletny przewodnik po zaawansowanych mechanizmach oraz funkcjach serwletów i JSP.

Platforma Java 2 jest najczęściej wykorzystywaną technologią do budowy komercyjnych aplikacji internetowych, dynamicznych witryn WWW oraz aplikacji i usług sieciowych. Jej podstawą są serwlety i strony JSP, które są obsługiwane -- przy użyciu komponentów wbudowanych lub dodatkowych -- na praktycznie wszystkich serwerach WWW, a jednocześnie stanowią połączenie między klientami internetowymi i aplikacjami działającymi na serwerze.

Tom II prezentuje zaawansowane narzędzia i techniki służące do tworzenia rozbudowanych i wysoko wydajnych aplikacji. Opisano w nim mechanizmy kontroli działania aplikacji za pomocą pliku web.xml, możliwości rozszerzenia systemu zabezpieczeń metodami deklaratywnymi i programistycznymi, a także sposoby używania filtrów serwletów i JSP. Przedstawiono tu także opis funkcji rzadziej używanych, lecz niezwykle przydatnych podczas tworzenia złożonych programów. Książka 'Core Servlets i Java Server Pages. Tom II. Technologie zaawansowane. Wydanie drugie' to wyczerpujący podręcznik dla programistów znających już podstawy technologiczne serwletów i stron JSP, którzy chcą poznać i wykorzystać ich zaawansowane możliwości.

Tom I zawiera szczegółowy opis serwletów i stron JSP, w tym nagłówki HTTP, pliki cookie, mechanizm śledzenia sesji, elementy skryptowe JSP, dołączanie plików, architekturę Model-Widok-Kontroler (MVC) i język wyrażeń JSP. Znajdziesz tam także opis formularzy HTML, JDBC oraz najlepsze praktyki projektowania i implementowania aplikacji.

Wykorzystaj wszystkie możliwości serwletów i stron JSP, aby tworzyć profesjonalne aplikacje!

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

Darmowy fragment publikacji:

Core Java Servlets i JavaServer Pages. Tom II. Wydanie II Autor: Marty Hall, Larry Brown, Yaakov Chaikin T‡umaczenie: Daniel Kaczmarek ISBN: 978-83-246-1726-5 Tytu‡ orygina‡u: Core Servlets and Javaserver Pages: Advanced Technologies, Vol. 2 (2nd Edition) Format: 172x245, stron: 632 (cid:149) Jak wykorzysta(cid:230) strumienie? (cid:149) Jak stworzy(cid:230) efektowny interfejs u¿ytkownika? (cid:149) Jak zapewni(cid:230) bezpieczeæstwo w tworzonych aplikacjach? Co spowodowa‡o, ¿e jŒzyk programowania Java zyska‡ tak wielk„ popularno(cid:156)(cid:230)? Przyczyn jest kilka: mo¿liwo(cid:156)(cid:230) przenoszenia kodu miŒdzy programami, wydajno(cid:156)(cid:230) i to, co programi(cid:156)ci lubi„ najbardziej (cid:150) mechanizm automatycznego oczyszczania pamiŒci. Nie bez znaczenia jest r(cid:243)wnie¿ to, ¿e Java jest jŒzykiem zorientowanym obiektowo, udostŒpnia obs‡ugŒ programowania rozproszonego oraz (cid:156)wietn„ dokumentacjŒ. Ponadto liczne publikacje oraz pomocna spo‡eczno(cid:156)(cid:230) sprawiaj„, ¿e Java zajmuje poczesne miejsce w(cid:156)r(cid:243)d innych jŒzyk(cid:243)w programowania. Kolejne wydanie ksi„¿ki zosta‡o zaktualizowane o wszystkie te elementy, kt(cid:243)re pojawi‡y siŒ w wersji sz(cid:243)stej platformy Java Standard Edition. DziŒki tej ksi„¿ce dowiesz siŒ, w jaki spos(cid:243)b wykorzysta(cid:230) strumienie, jak parsowa(cid:230) dokumenty XML czy te¿ w jaki spos(cid:243)b tworzy(cid:230) aplikacje sieciowe. Poznasz interfejs JDBC, spos(cid:243)b wykorzystania transakcji oraz wykonywania zapytaæ SQL. Autorzy w szczeg(cid:243)‡owy spos(cid:243)b poka¿„ Ci, jak tworzy(cid:230) aplikacje z wykorzystaniem biblioteki Swing. Dodatkowo przedstawi„, w jaki spos(cid:243)b zapewni(cid:230) bezpieczeæstwo w tworzonych przez Ciebie aplikacjach. Wszystkie te - oraz wiele innych (cid:150) zagadnienia zostan„ przedstawione w przystŒpny i sprawdzony spos(cid:243)b! (cid:149) Wykorzystanie strumieni (cid:149) Dokumenty XML i ich wykorzystanie w jŒzyku Java (cid:149) Programowanie aplikacji sieciowych (cid:149) Wykorzystanie interfejsu JDBC (cid:149) Tworzenie aplikacji wielojŒzycznych (cid:149) Mo¿liwo(cid:156)ci pakietu Swing (cid:149) Wykorzystanie biblioteki AWT (cid:149) Bezpieczeæstwo w aplikacjach (cid:149) Zastosowanie podpisu cyfrowego (cid:149) Sposoby wykorzystania obiekt(cid:243)w rozproszonych (RMI) Wykorzystaj zaawansowane mo¿liwo(cid:156)ci jŒzyka Java w swoich projektach! Spis treÊci Wprowadzenie ................................................................................................................................................ 11 PodziÂkowania ............................................................................................................................................... 15 O autorach ...................................................................................................................................................... 16 RozdziaÄ 1. UÑywanie i wdraÑanie aplikacji internetowych ......................................................................... 17 1.1. Cele aplikacji internetowych .................................................................................... 18 Organizacja ....................................................................................................... 18 PrzenoĈnoĈè ..................................................................................................... 18 Separacja ......................................................................................................... 18 1.2. Struktura aplikacji internetowych ............................................................................... 19 Lokalizacje poszczególnych rodzajów plików ......................................................... 19 1.3. Rejestrowanie aplikacji internetowych na serwerze ..................................................... 23 Rejestrowanie aplikacji internetowych na serwerze Tomcat ................................... 24 Rejestrowanie aplikacji internetowych na innych serwerach ................................... 26 1.4. Strategie rozwoju i wdraĔania aplikacji internetowych .................................................. 28 Kopiowanie struktury do skrótu lub dowiñzania symbolicznego .............................. 29 Wykorzystanie funkcji wdraĔania udostöpnianych przez IDE ................................... 30 UĔywanie narzödzi ant, maven i im podobnych ..................................................... 30 UĔywanie IDE wraz z narzödziem Ant ................................................................... 31 1.5. Umieszczanie aplikacji internetowych w plikach WAR .................................................. 31 1.6. Tworzenie prostej aplikacji internetowej ..................................................................... 32 Pobranie aplikacji app-blank i zmiana jej nazwy na testApp ................................... 33 Pobranie plików test.html, test.jsp oraz TestServlet.java ....................................... 33 Dodanie plików test.html i test.jsp do aplikacji internetowej testApp ..................... 33 Umieszczenie pliku TestServlet.java w katalogu testApp/WEB-INF/classes/coreservlets .......................................................... 34 Kompilacja pliku TestServlet.java ........................................................................ 34 Zadeklarowanie w pliku web.xml klasy TestServlet.class oraz adresu URL, który jñ wywoäuje ........................................................................................... 35 Skopiowanie aplikacji testApp do katalogu katalog_tomcat/webapps .................... 36 4 Core Java Servlets i JavaServer Pages Uruchomienie serwera Tomcat ............................................................................ 36 Wywoäanie aplikacji testApp przy uĔyciu adresu URL w postaci http://localhost/testApp/zasób ...................................................... 37 1.7. WspóäuĔytkowanie danych przez aplikacje internetowe ................................................ 39 RozdziaÄ 2. Kontrolowanie dziaÄania aplikacji przy uÑyciu deskryptora web.xml ....................................47 2.1. Przeznaczenie deskryptora wdroĔenia ........................................................................ 48 2.2. Definiowanie elementu gäównego i elementu nagäówka ............................................... 48 2.3. Elementy deskryptora web.xml .................................................................................. 50 Wersja 2.4 specyfikacji serwletów ....................................................................... 50 Wersja 2.3 specyfikacji serwletów ....................................................................... 53 2.4. Przypisywanie nazw i wäasnych adresów URL .............................................................. 55 Przypisywanie nazw ............................................................................................ 56 Definiowanie wäasnych adresów URL ................................................................... 57 Nazewnictwo stron JSP ...................................................................................... 62 2.5. Wyäñczanie serwletu wywoäujñcego ............................................................................ 64 Zmiana odwzorowania wzorca adresu URL /servlet/ ............................................. 65 Globalne wyäñczanie serwletu wywoäujñcego na serwerze Tomcat .......................... 66 2.6. Inicjalizowanie i wstöpne äadowanie serwletów i stron JSP .......................................... 68 Przypisywanie serwletom parametrów inicjalizacyjnych .......................................... 68 Przypisywanie parametrów inicjalizacyjnych JSP .................................................... 71 Parametry inicjalizacyjne na poziomie caäej aplikacji ............................................. 74 ãadowanie serwletów w momencie uruchamiania serwera .................................... 74 2.7. Deklarowanie filtrów ................................................................................................ 78 2.8. Definiowanie stron powitalnych ................................................................................. 81 2.9. Wyznaczanie stron obsäugujñcych bäödy ..................................................................... 81 Element error-code ............................................................................................ 82 Element exception-type ...................................................................................... 84 2.10. Definiowanie zabezpieczeþ ...................................................................................... 86 Definiowanie metody uwierzytelniania ................................................................. 86 Ograniczanie dostöpu do zasobów sieciowych ...................................................... 88 Przypisywanie ról ............................................................................................... 91 2.11. Kontrolowanie czasu wygasania sesji ....................................................................... 92 2.12. Dokumentowanie aplikacji internetowych .................................................................. 92 2.13. Przypisywanie plikom typów MIME ............................................................................ 93 2.14. Konfigurowanie stron JSP ........................................................................................ 94 Lokalizacja deskryptorów bibliotek znaczników ..................................................... 94 Konfigurowanie wäaĈciwoĈci stron JSP ................................................................. 95 2.15. Kodowanie znaków ............................................................................................... 100 2.16. Tworzenie procesów nasäuchujñcych zdarzeþ aplikacji .............................................. 100 2.17. Tworzenie rozwiñzaþ przeznaczonych dla Ĉrodowisk klastrowych ............................... 101 2.18. Elementy J2EE ..................................................................................................... 104 RozdziaÄ 3. Zabezpieczenia deklaratywne ................................................................................................. 109 3.1. Uwierzytelnianie przy uĔyciu formularza .................................................................... 111 Definiowanie nazw uĔytkowników, haseä i ról ...................................................... 113 Wäñczanie na serwerze uwierzytelniania przy uĔyciu formularzy i wskazywanie lokalizacji strony logowania oraz strony obsäugi bäödu logowania .... 114 Tworzenie strony logowania .............................................................................. 115 Tworzenie strony z informacjñ o bäödzie logowania ............................................. 118 Wskazywanie adresów URL, które majñ byè zabezpieczone hasäem ..................... 118 Zdefiniowanie listy wszystkich abstrakcyjnych ról ............................................... 122 Spis treÊci 5 Wskazywanie adresów URL dostöpnych wyäñcznie za poĈrednictwem protokoäu SSL .................................................................. 122 Wyäñczanie serwletu wywoäujñcego .................................................................... 124 3.2. Przykäad. Uwierzytelnianie przy uĔyciu formularzy ..................................................... 125 Strona gäówna ................................................................................................. 125 Deskryptor wdroĔenia ....................................................................................... 126 Plik z hasäami .................................................................................................. 129 Strony logowania i obsäugi bäödu logowania ....................................................... 130 Katalog investing ............................................................................................. 131 Katalog ssl ..................................................................................................... 134 Katalog admin ................................................................................................. 137 Serwlet NoInvokerServlet ................................................................................. 140 Strony niezabezpieczone .................................................................................. 141 3.3. Uwierzytelnianie metodñ BASIC ............................................................................... 144 Definiowanie nazw uĔytkowników, haseä i ról ...................................................... 146 Wäñczanie na serwerze uwierzytelniania metodñ BASIC i definiowanie nazwy obszaru ....................................................................... 146 Wskazywanie adresów URL, które majñ byè zabezpieczone hasäem ..................... 146 Zdefiniowanie listy wszystkich abstrakcyjnych ról ............................................... 147 Wskazywanie adresów URL dostöpnych wyäñcznie za poĈrednictwem protokoäu SSL .................................................................. 147 3.4. Przykäad. Uwierzytelnianie metodñ BASIC ................................................................. 147 Strona gäówna ................................................................................................. 148 Deskryptor wdroĔenia ....................................................................................... 149 Plik haseä ........................................................................................................ 151 Plan finansowy ................................................................................................ 151 Biznesplan ...................................................................................................... 152 Serwlet NoInvokerServlet ................................................................................. 154 3.5. Konfigurowanie obsäugi protokoäu SSL na serwerze Tomcat ....................................... 155 3.6. WebClient. Interaktywna komunikacja z serwerami WWW .......................................... 161 3.7. Podpisywanie certyfikatu serwera ............................................................................ 164 Eksport certyfikatu CA ...................................................................................... 166 Komunikacja klienta WebClient z serwerem Tomcat przy uĔyciu protokoäu SSL ..... 170 RozdziaÄ 4. Zabezpieczenia programistyczne ........................................................................................... 173 4.1. ãñczenie zabezpieczeþ programistycznych i zabezpieczeþ zarzñdzanych przez kontener ..................................................................... 175 Odwoäania do ról ............................................................................................. 176 4.2. Przykäad. ãñczenie zabezpieczeþ programistycznych i zabezpieczeþ zarzñdzanych przez kontener ..................................................................... 177 4.3. Zastosowanie wyäñcznie zabezpieczeþ programistycznych ......................................... 180 4.4. Przykäad. Zastosowanie wyäñcznie zabezpieczeþ programistycznych ........................... 184 4.5. Zabezpieczenia programistyczne i protokóä SSL ......................................................... 187 Ustalenie, czy uĔywany jest protokóä SSL ........................................................... 188 Przekierowywanie wywoäaþ, które nie dotyczñ protokoäu SSL ............................... 188 Odczytanie liczby bitów w kluczu ....................................................................... 189 Sprawdzenie algorytmu szyfrowania .................................................................. 189 Dostöp do certyfikatu X.509 klienta .................................................................. 189 4.6. Przykäad. Zabezpieczenia programistyczne i protokóä SSL .......................................... 190 6 Core Java Servlets i JavaServer Pages RozdziaÄ 5. Filtry serwletów i stron JSP ................................................................................................... 195 5.1. Tworzenie prostych filtrów ...................................................................................... 196 Tworzenie klasy implementujñcej interfejs Filter ................................................. 197 Implementacja filtra w metodzie doFilter ............................................................ 198 Wywoäanie metody doFilter obiektu FilterChain ................................................... 198 Rejestrowanie filtra dla serwletów lub stron JSP ................................................. 198 Wyäñczenie serwletu wywoäujñcego .................................................................... 200 5.2. Przykäad. Filtr raportujñcy ........................................................................................ 201 5.3. Dostöp do kontekstu serwletu z poziomu filtra ......................................................... 207 5.4. Przykäad. Filtr zapisujñcy do dziennika ..................................................................... 208 5.5. UĔywanie parametrów inicjalizujñcych dla filtrów ...................................................... 210 5.6. Przykäad. Filtr czasu udostöpnienia .......................................................................... 212 5.7. Blokowanie odpowiedzi .......................................................................................... 215 5.8. Przykäad. Filtr blokujñcy stronö ................................................................................ 215 5.9. Modyfikowanie odpowiedzi ..................................................................................... 221 Obiekt przechowujñcy odpowiedĒ, gotowy do wielokrotnego wykorzystania ............ 222 5.10. Przykäad. Filtr zastöpujñcy ..................................................................................... 224 Ogólny filtr modyfikujñcy ................................................................................... 224 Konkretny filtr modyfikujñcy .............................................................................. 225 5.11. Przykäad. Filtr kompresujñcy .................................................................................. 230 5.12. Konfigurowanie wspóäpracy filtra z obiektem RequestDispatcher ............................. 235 5.13. Przykäad. ãatanie potencjalnej dziury w zabezpieczeniach ........................................ 237 5.14. Peäna definicja deskryptora wdroĔenia ................................................................... 243 RozdziaÄ 6. Model zdarzeÆ aplikacji ........................................................................................................... 249 6.1. Monitorowanie zdarzeþ polegajñcych na utworzeniu i zniszczeniu kontekstu serwletu ..... 252 6.2. Przykäad. Inicjalizowanie wspóäuĔytkowanych danych ................................................. 253 6.3. Wykrywanie zmian wartoĈci atrybutów kontekstu serwletu ......................................... 258 6.4. Monitorowanie zmian we wspóäuĔytkowanych danych ................................................ 259 6.5. Umieszczanie obiektów nasäuchujñcych w bibliotekach znaczników ............................ 267 6.6. Przykäad. Pakiet zawierajñcy obiekty Ĉledzñce nazwö firmy ........................................ 269 6.7. Wykrywanie zdarzeþ tworzenia i niszczenia sesji ....................................................... 275 6.8. Przykäad. Obiekt nasäuchujñcy, który zlicza sesje ...................................................... 276 Wyäñczanie obsäugi plików cookie ...................................................................... 282 6.9. Wykrywanie zmian w atrybutach sesji ...................................................................... 283 6.10. Przykäad. Monitorowanie zamówieþ na jachty ......................................................... 283 6.11. Wykrywanie inicjalizacji i zniszczenia Ĕñdania serwletu ............................................ 290 6.12. Przykäad. Obliczanie obciñĔenia serwera Ĕñdaniami ................................................. 291 6.13. Wykrywanie zmian atrybutów w Ĕñdaniach serwletów .............................................. 296 6.14. Przykäad. Zatrzymywanie obiektu zbierania statystyk Ĕñdaþ ...................................... 297 6.15. Wykorzystanie wielu obiektów nasäuchujñcych wspóäpracujñcych ze sobñ ................. 299 ćledzenie zamówieþ na towary z oferty dnia ....................................................... 300 Resetowanie licznika zamówieþ na oferty dnia ................................................... 306 6.16. Peäna definicja deskryptora wdroĔenia ................................................................... 311 RozdziaÄ 7. Podstawowe informacje na temat bibliotek znaczników ....................................................... 317 7.1. Komponenty biblioteki znaczników .......................................................................... 318 Klasa obsäugi znacznika ................................................................................... 319 Plik deskryptora biblioteki znaczników ............................................................... 320 Plik JSP .......................................................................................................... 321 Spis treÊci 7 7.2. Przykäad. Prosty znacznik liczby pierwszej ................................................................. 322 7.3. Przypisywanie znacznikom atrybutów ....................................................................... 326 Atrybuty znacznika a klasa obsäugi znacznika ..................................................... 326 Atrybuty znacznika a deskryptor biblioteki znaczników ......................................... 327 Atrybuty znacznika a plik JSP ............................................................................ 328 7.4. Przykäad. Znacznik liczby pierwszej o zmiennej däugoĈci ............................................ 328 7.5. Zamieszczanie treĈci znacznika w danych zwracanych przez znacznik ......................... 330 TreĈè znacznika a klasa obsäugi znacznika ......................................................... 330 TreĈè znacznika a deskryptor biblioteki znaczników ............................................ 331 TreĈè znacznika a plik JSP ................................................................................ 331 7.6. Przykäad. Znacznik nagäówka ................................................................................... 332 7.7. Przykäad. Znacznik debugowania ............................................................................. 335 7.8. Tworzenie plików znaczników .................................................................................. 337 7.9. Przykäad. Prosty znacznik liczby pierwszej z uĔyciem pliku znacznika ........................... 339 7.10. Przykäad. Znacznik liczby pierwszej o zmiennej däugoĈci z uĔyciem pliku znacznika ...... 340 7.11. Przykäad. Znacznik nagäówka z uĔyciem pliku znacznika ............................................ 341 RozdziaÄ 8. Biblioteki znaczników. Funkcje zaawansowane .................................................................... 345 8.1. Operacje na treĈci znacznika .................................................................................. 346 8.2. Przykäad. Znacznik filtrujñcy kod HTML ..................................................................... 347 8.3. Przypisywanie atrybutom znaczników wartoĈci dynamicznych ..................................... 350 Dynamiczne wartoĈci atrybutów a klasa obsäugi znacznika .................................. 351 Dynamiczne wartoĈci atrybutów a deskryptor biblioteki znaczników ...................... 351 Dynamiczne wartoĈci atrybutów a plik JSP ......................................................... 351 8.4. Przykäad. Prosty znacznik wykonujñcy pötlö .............................................................. 352 8.5. Przypisywanie atrybutom znaczników wartoĈci w postaci zäoĔonych obiektów .............. 356 Dynamiczne, zäoĔone wartoĈci atrybutów a klasa obsäugi znacznika ..................... 356 Dynamiczne, zäoĔone wartoĈci atrybutów a deskryptor biblioteki znaczników ......... 356 Dynamiczne, zäoĔone wartoĈci atrybutów a plik JSP ............................................ 357 8.6. Przykäad. Znacznik formatujñcy tabele ..................................................................... 357 8.7. Tworzenie znaczników wykonujñcych pötle ............................................................... 362 8.8. Przykäad. Znacznik forEach ..................................................................................... 363 8.9. Tworzenie funkcji jözyka wyraĔeþ ............................................................................. 367 8.10. Przykäad. Ulepszony znacznik debugowania ............................................................. 369 8.11. Obsäuga zagnieĔdĔonych znaczników niestandardowych ........................................... 372 8.12. Przykäad. Znacznik If-Then-Else ............................................................................... 373 RozdziaÄ 9. Biblioteka standardowych znaczników JSP (JSTL) ............................................................... 379 9.1. Instalacja biblioteki JSTL ........................................................................................ 380 9.2. Znacznik c:out ....................................................................................................... 381 9.3. Znaczniki c:forEach i c:forTokens ............................................................................ 382 9.4. Znacznik c:if .......................................................................................................... 383 9.5. Znacznik c:choose ................................................................................................. 384 9.6. Znaczniki c:set i c:remove ...................................................................................... 386 9.7. Znacznik c:import .................................................................................................. 388 9.8. Znaczniki c:url i c:param ........................................................................................ 391 9.9. Znacznik c:redirect ................................................................................................ 392 9.10. Znacznik c:catch .................................................................................................... 394 8 Core Java Servlets i JavaServer Pages RozdziaÄ 10. Podstawy platformy Struts ................................................................................................... 397 10.1. Podstawy Struts ................................................................................................... 398 RóĔne strony Struts ......................................................................................... 398 Zalety platformy Apache Struts w porównaniu z MVC z obiektem RequestDispatcher i JSP EL ........................................................ 398 Wady platformy Apache Struts w porównaniu z MVC z obiektem RequestDispatcher i EL .............................................................. 400 10.2. Instalacja i konfiguracja platformy Struts ................................................................ 402 Instalacja Struts .............................................................................................. 402 Testowanie platformy Struts ............................................................................. 404 Tworzenie wäasnych aplikacji Struts ................................................................... 405 Dodawanie Struts do juĔ istniejñcej aplikacji internetowej ................................... 405 10.3. Proces przetwarzania Struts i szeĈè kroków do jego implementacji ........................... 406 Proces przetwarzania na platformie Struts ......................................................... 406 SzeĈè podstawowych kroków w pracy ze Struts .................................................. 410 10.4. Przetwarzanie Ĕñdaþ przez obiekty Action ................................................................ 414 Dziaäanie obiektów Action ................................................................................. 415 Przykäad. Odwzorowanie jednego wyniku ............................................................ 418 Przykäad. Odwzorowanie kilku wyników ............................................................... 424 ãñczenie wspóäuĔytkowanych odwzorowaþ warunków .......................................... 432 10.5. Obsäuga parametrów Ĕñdaþ w komponentach bean formularzy .................................. 434 Proces przetwarzania na platformie Struts z uwzglödnieniem komponentów bean ..... 434 SzeĈè podstawowych kroków w pracy ze Struts .................................................. 436 Dziaäanie komponentów bean formularzy ........................................................... 438 WyĈwietlanie wäaĈciwoĈci komponentu bean ...................................................... 440 Przykäad. Komponenty bean formularza i danych wynikowych ............................... 442 10.6. Wstöpne wypeänianie formularzy danymi i ich ponowne wyĈwietlanie ......................... 453 Proces przetwarzania na platformie Struts ......................................................... 454 SzeĈè podstawowych kroków w pracy ze Struts .................................................. 455 Wykorzystanie znaczników html: platformy Struts ............................................... 458 Wypeänianie formularzy danymi poczñtkowymi .................................................... 459 Przykäad. Wypeänianie formularzy danymi poczñtkowymi ...................................... 460 Strategie tworzenia adresów URL dla obiektów Action ........................................ 469 Ponowne wyĈwietlanie formularzy ..................................................................... 472 Przykäad. Ponowne wyĈwietlanie formularza ....................................................... 475 RozdziaÄ 11. Platforma Struts. Funkcje dodatkowe ................................................................................... 485 11.1. Wykorzystanie plików wäaĈciwoĈci .......................................................................... 486 Zalety plików wäaĈciwoĈci ................................................................................. 486 Dziaäanie platformy Struts z uwzglödnieniem plików wäaĈciwoĈci .......................... 486 Sposób uĔywania plików wäaĈciwoĈci ................................................................ 487 Przykäad. Proste komunikaty ............................................................................. 491 Klucze dynamiczne .......................................................................................... 496 Komunikaty parametryzowane .......................................................................... 497 11.2. Umiödzynaradawianie aplikacji ............................................................................... 498 ãadowanie jözykowych wersji pliku wäaĈciwoĈci .................................................. 498 Definiowanie ustawieþ jözykowych w przeglñdarkach .......................................... 498 Przykäad. Polska, hiszpaþska i francuska wersja jözykowa ................................... 499 Wyniki ............................................................................................................ 500 Spis treÊci 9 11.3. Definiowanie ukäadu stron przy uĔyciu moduäu Tiles ............................................... 501 Powody, dla których warto uĔywaè Tiles ............................................................. 501 Wymagania wstöpne moduäu Tiles .................................................................... 502 Cztery kroki w pracy z Tiles ............................................................................... 503 Prosta aplikacja wykorzystujñca Tiles ................................................................ 506 Obsäuga wzglödnych adresów URL .................................................................... 510 Przykäad. Aplikacja e-boats ............................................................................... 511 11.4. Wykorzystanie Tiles Definitions .............................................................................. 519 Powody, dla których warto uĔywaè Tiles Definitions ............................................ 521 Piöè kroków w pracy z Tiles Definitions .............................................................. 522 Przykäad. Aplikacja e-boats wykorzystujñca moduä Tiles Definitions ...................... 525 RozdziaÄ 12. Platforma Struts. Weryfikacja poprawnoÊci danych wpisanych przez uÑytkownika ...... 529 12.1. Weryfikacja poprawnoĈci danych w klasie Action ..................................................... 530 Proces przetwarzania Struts ............................................................................. 531 Przeprowadzenie weryfikacji danych w klasie Action ............................................ 531 Przykäad. Wybór kolorów i rozmiarów czcionek wykorzystywanych w Ĕyciorysie ....... 534 12.2. Weryfikacja poprawnoĈci danych w komponencie bean formularza ............................ 541 Proces przetwarzania Struts ............................................................................. 542 Przeprowadzenie weryfikacji danych w komponencie ActionForm .......................... 542 Przykäad. Wybór kolorów i rozmiarów czcionek wykorzystywanych w Ĕyciorysie (wersja druga) ................................................ 546 Parametryzowane komunikaty o bäödach ........................................................... 553 Przykäad. Weryfikacja poprawnoĈci danych z wykorzystaniem parametryzowanych komunikatów ....................................... 553 12.3. Wykorzystanie platformy automatycznej weryfikacji poprawnoĈci danych .................... 556 Weryfikacja röczna a weryfikacja automatyczna .................................................. 556 Weryfikacja na kliencie a weryfikacja na serwerze .............................................. 557 Proces przetwarzania Struts ............................................................................. 558 Konfiguracja mechanizmu automatycznej weryfikacji danych ................................ 559 Przykäad. Automatyczna weryfikacja poprawnoĈci danych .................................... 565 Dodatek A Tworzenie aplikacji przy uÑyciu Apache Ant ........................................................................... 575 A.1. NajwaĔniejsze zalety Ant ......................................................................................... 576 A.2. Instalacja i konfiguracja Ant .................................................................................... 576 A.3. Tworzenie projektu Ant ........................................................................................... 577 Definiowanie projektu Ant ................................................................................. 578 Definiowanie celów .......................................................................................... 580 Przypisywanie zadaþ do celów .......................................................................... 581 Uruchamianie celu Ant ..................................................................................... 581 A.4. Przeglñd najczöĈciej uĔywanych zadaþ Ant ............................................................... 582 Zadanie echo .................................................................................................. 582 Zadanie tstamp ............................................................................................... 583 Zadanie mkdir ................................................................................................. 584 Zadanie delete ................................................................................................ 584 Zadanie copy .................................................................................................. 586 Zadanie javac .................................................................................................. 588 A.5. Przykäad. Prosty projekt Ant .................................................................................... 591 A.6. Tworzenie aplikacji internetowej przy uĔyciu Ant ...................................................... 596 ZaleĔnoĈci miödzy celami Ant ........................................................................... 597 10 Core Java Servlets i JavaServer Pages A.7. Przykäad. Wykonanie aplikacji internetowej ............................................................... 598 Cel prepare ..................................................................................................... 600 Cel copy ......................................................................................................... 601 Cel build ......................................................................................................... 602 A.8. Tworzenie pliku WAR przy uĔyciu Ant ........................................................................ 603 Zadanie jar ..................................................................................................... 603 Zadanie manifest ............................................................................................ 605 A.9. Przykäad. Tworzenie pliku WAR aplikacji internetowej ................................................. 606 Cel war ........................................................................................................... 607 Skorowidz .....................................................................................................................................................611 1 UÑywanie i wdraÑanie aplikacji internetowych W tym rozdziale: Q Cele aplikacji internetowych Q Struktura aplikacji internetowych Q Rejestrowanie aplikacji internetowych Q Strategie rozwoju i wdraĪania aplikacji internetowych Q Pliki WAR Q WspóáuĪytkowanie danych przez aplikacje internetowe W ramach aplikacji internetowych moĪna tworzyü zwarte kolekcje serwletów, stron Java Server Pages (JSP), bibliotek znaczników, dokumentów HTML (Hypertext Markup Language), obrazków, arkuszy stylów i innych treĞci przeznaczonych dla internetu. Z kolekcji tych moĪna korzystaü na dowolnym serwerze zgodnym ze specyfikacją serwletów. Prawidáowo zaprojek- towane aplikacje internetowe moĪna przenosiü z jednego serwera na inny albo umieszczaü w innej lokalizacji na tym samym serwerze bez koniecznoĞci wprowadzania zmian do ser- wletów, stron JSP czy plików HTML wchodzących w skáad aplikacji. W ten sposób nawet záoĪone aplikacje moĪna przenosiü bez wiĊkszego wysiáku, uáatwiając ich wielokrotne wykorzystywanie. Ponadto dziĊki temu, Īe kaĪda aplikacja internetowa posiada wáasną strukturĊ katalogów, sesje, kontekst ServletContext i moduá áadowania klas, uĪywanie aplikacji internetowej upraszcza nawet początkowe etapy rozwoju, poniewaĪ znacznie mniej uwagi trzeba poĞwiĊcaü na koordynacjĊ poszczególnych elementów caáego opraco- wanego rozwiązania. 18 Core Java Servlets i JavaServer Pages 1.1. Cele aplikacji internetowych Aplikacje internetowe mają trzy gáówne zalety — uáatwiają odpowiednie zorganizowanie zasobów, wdroĪona aplikacja charakteryzuje siĊ przenoĞnoĞcią, a ponadto áatwiej jest uniknąü konfliktów miĊdzy róĪnymi aplikacjami internetowymi. KaĪda z tych zalet zostanie omówiona nieco szerzej. Organizacja Pierwsza zaleta aplikacji internetowych wypáywa z faktu, Īe wszystko ma w nich swoje miejsce — dla kaĪdego rodzaju zawartoĞci przeznaczona jest standardowa lokalizacja. Poszczególne pliki klas Java zawsze znajdują siĊ w katalogu o nazwie WEB-INF/classes, pliki JAR (zbiory plików klas Java) zawsze umieszczane są w katalogu WEB-INF/lib, plik konfiguracyjny web.xml zawsze znajduje siĊ w katalogu WEB-INF i tak dalej. Pliki bezpoĞrednio dostĊpne dla klientów (na przykáad przeglądarek internetowych) umieszczane są w gáównym katalogu aplikacji internetowej lub dowolnym jego podkatalogu z wyjątkiem WEB-INF. CzĊsto zdarza siĊ, Īe programista koĔczy pracĊ nad jednym projektem i przechodzi do innego zespoáu projektowego. DziĊki standardowej organizacji zasobów aplikacji nie trzeba na nowo poznawaü struktury aplikacji za kaĪdym razem, gdy rozpoczyna siĊ pracĊ nad nowym pro- jektem. Nowy programista rozpoczynający pracĊ nad aplikacją nie musi równieĪ traciü czasu na rozpoznanie sposobu organizowania poszczególnych rodzajów plików. PrzenoÊnoÊÀ PoniewaĪ specyfikacja serwletów przewiduje okreĞloną organizacjĊ plików, na kaĪdym serwe- rze zgodnym z tą specyfikacją moĪna wáaĞciwie od razu wdraĪaü i uruchamiaü aplikacjĊ. DziĊki temu istnieje duĪa swoboda w wyborze dostawcy docelowego serwera WWW. JeĞli tylko wybrany serwer jest zgodny ze specyfikacją, kaĪdą aplikacjĊ moĪna — w wiĊkszoĞci przypadków bez Īadnych zmian — wdroĪyü i uruchomiü na serwerze pochodzącym od innego producenta. MoĪna na przykáad utworzyü aplikacjĊ na darmowym serwerze WWW, a nastĊp- nie jej wersjĊ przedprodukcyjną uruchomiü juĪ na bardziej stabilnym serwerze, dla którego producent Ğwiadczy odpowiednie wsparcie techniczne. Separacja Poszczególne aplikacje internetowe wdroĪone na tym serwerze nie wchodzą ze sobą w konflikt. KaĪda aplikacja ma wáasny adres URL, za pomocą którego moĪna do niej uzyskaü dostĊp, wáasny obiekt ServletContext i tak dalej. Dwie aplikacje wdroĪone na tym samym serwerze dziaáają tak, jakby byáy uruchamiane na dwóch oddzielnych serwerach, Īadna z tych aplikacji nie musi równieĪ mieü dostĊpu do drugiej. RozdziaÄ 1. Q UÑywanie i wdraÑanie aplikacji internetowych 19 Fakt ten jeszcze bardziej upraszcza proces tworzenia i wdraĪania aplikacji internetowych. Programista nie musi bowiem w ogóle zastanawiaü siĊ nad tym, w jaki sposób powinno siĊ integrowaü tworzoną aplikacjĊ z aplikacjami juĪ dziaáającymi na tym samym serwerze. Obecnie istnieje kilka sposobów, dziĊki którym aplikacje mogą ze sobą wspóápracowaü — zostaną one opisane w dalszej czĊĞci rozdziaáu. Jednak w znakomitej wiĊkszoĞci przy- padków aplikacje wdraĪa siĊ niezaleĪnie od siebie. 1.2. Struktura aplikacji internetowych Jak juĪ wczeĞniej wspomniano, aplikacja internetowa ma standardowy format i jest przenoĞna do wszystkich serwerów WWW lub serwerów aplikacji zgodnych ze specyfikacją. Gáówny katalog aplikacji to zwykáy katalog o dowolnej nazwie. Wewnątrz tego katalogu znajdują siĊ lokalizacje przeznaczone dla poszczególnych elementów. W tym punkcie opisane zostaną rodzaje elementów, z jakich moĪe skáadaü siĊ aplikacja, oraz lokalizacje, w których elementy powinny siĊ znajdowaü. Lokalizacje poszczególnych rodzajów plików Na rysunku 1.1 przedstawiono standardową strukturĊ przykáadowej aplikacji internetowej. Aby wykonaü kolejne kroki procesu tworzenia wáasnej aplikacji internetowej, naleĪy pobraü z serwera ftp://ftp.helion.pl/przyklady/jsp2w2.zip aplikacjĊ app-blank i wykonaü instrukcje opi- sane w punkcie 1.6 („Tworzenie prostej aplikacji internetowej”). Rysunek 1.1. Struktura standardowej aplikacji internetowej Strony JSP Strony JSP naleĪy umieszczaü w gáównym katalogu aplikacji internetowej lub w jego pod- katalogu o dowolnej nazwie, innej niĪ WEB-INF i META-INF. Serwery nigdy nie udostĊp- niają klientom plików znajdujących siĊ w katalogach WEB-INF i META-INF. Gdy aplikacja internetowa zostanie juĪ zarejestrowana (wiĊcej na ten temat w punkcie 1.3), naleĪy wskazaü serwerowi prefiks URL wskazujący aplikacjĊ oraz zdefiniowaü lokalizacjĊ, w której znaj- duje siĊ katalog aplikacji internetowej. Zazwyczaj — choü nie jest to obowiązkowe — jako 20 Core Java Servlets i JavaServer Pages prefiks URL wskazuje siĊ po prostu nazwĊ gáównego katalogu aplikacji. Po zarejestrowaniu prefiksu strony JSP staną siĊ dostĊpne za poĞrednictwem adresów URL w postaci http:// ´komputer/prefiksAplikacji/nazwapliku.jsp (jeĪeli strony JSP znajdują siĊ w gáównym kata- logu aplikacji) albo http://komputer/prefiksAplikacji/podkatalog/nazwapliku.jsp (gdy strony znajdują siĊ w podkatalogu). Od ustawieĔ serwera zaleĪy, czy plik domyĞlny, taki jak index.jsp, bĊdzie dostĊpny po wpi- saniu adresu URL wskazującego jedynie katalog (na przykáad http://komputer/prefiksAplikacji/) bez zapisania odpowiedniego ustawienia w pliku konfiguracyjnym WEB-INF/web.xml. JeĪeli index.jsp ma byü domyĞlnym plikiem aplikacji, zalecane jest dodanie w pliku web.xml tej aplikacji odpowiedniego elementu welcome-file-list. Na przykáad poniĪszy fragment pliku web.xml wskazuje, Īe jeĪeli adres URL zawiera nazwĊ katalogu, a nie zawiera nazwy pliku, wówczas serwer powinien w pierwszej kolejnoĞci zwróciü plik index.jsp, a w drugiej kolej- noĞci plik index.html. JeĪeli na serwerze nie ma Īadnego z tych dwóch plików, odpowiedĨ bĊdzie zaleĪeü od serwera (na przykáad wyĞwietlona zostanie zawartoĞü katalogu). welcome-file-list welcome-file index.jsp /welcome-file welcome-file index.html /welcome-file /welcome-file-list WiĊcej informacji na temat sposobu uĪywania pliku web.xml znajduje siĊ w rozdziale 2., „Kontrolowanie dziaáania aplikacji przy uĪyciu deskryptora web.xml”. Dokumenty HTML, obrazki i inne standardowe elementy aplikacji internetowej Moduá obsáugi serwletów i stron JSP stosuje identyczne reguáy dla stron JSP oraz dla plików HTML, obrazków GIF i JPEG, arkuszy stylów i innych dokumentów internetowych. Wszystkie wymienione elementy są umieszczane dokáadnie w tych samych lokalizacjach i udostĊpniane za poĞrednictwem adresów URL w identycznej formie. Pojedyncze serwlety, komponenty JavaBeans i klasy pomocnicze Serwlety oraz inne pliki z rozszerzeniem .class umieszcza siĊ w katalogu WEB-INF/classes albo w podkatalogu katalogu WEB-INF/classes o nazwie odpowiadającej nazwie pakietu. Aby uzyskaü dostĊp do jednego z serwletów trzeba wskazaü dla niego odpowiedni adres URL. W tym celu w deskryptorze wdroĪenia web.xml, znajdującym siĊ w katalogu WEB-INF, trzeba zdefiniowaü element servlet-mapping. WiĊcej informacji na ten temat znajduje siĊ w punkcie 1.3, „Rejestrowanie aplikacji internetowych na serwerze”. DostĊp do serwletów moĪna takĪe uzyskiwaü w inny sposób, który nie wymaga definiowania odpowiedniego adresu URL. Do tego celu moĪna uĪyü adresu o postaci http://komputer/prefiks ´Aplikacji/servlet/nazwaPakietu.NazwaSerwletu. UĪywanie adresu o takiej postaci przy- daje siĊ w trakcie testowania moĪliwoĞci aplikacji, natomiast nie zaleca siĊ jego uĪywania w aplikacjach produkcyjnych. Powodów jest kilka. Po pierwsze, jeĪeli dla tego samego serwletu zostanie równieĪ zdefiniowany element servlet-mapping, bĊdzie moĪna go wywo- áywaü na dwa róĪne sposoby, a to z kolei szybko zacznie utrudniaü utrzymywanie aplikacji. RozdziaÄ 1. Q UÑywanie i wdraÑanie aplikacji internetowych 21 Po drugie, poniewaĪ deklaratywne zabezpieczenia aplikacji zaleĪą od adresu URL, przy uĪyciu którego zasób jest udostĊpniany, moĪe w ten sposób powstaü luka w zabezpieczeniach. Po trzecie, uĪytkownik jest zmuszony wpisaü adres URL, w którym znajduje siĊ nazwa serwletu ze wszystkimi jego kwalifikatorami, a takie adresy wyglądają maáo elegancko i są trudne do zapamiĊtania. Zatem w kategorii uĪytecznoĞci aplikacji internetowej taki sposób wywoáywania serwletów zyskaáby bardzo niskie noty. Po czwarte, jeĪeli kiedykolwiek zajdzie potrzeba, by zmieniü nazwĊ klasy albo umieĞciü klasy w nowym pakiecie, zmieniü trzeba bĊdzie równieĪ sam adres URL. To z kolei pociągnie za sobą wymóg zmiany wszystkich odwoáaĔ znajdu- jących siĊ w aplikacji, w których uĪywano dotychczasowego adresu URL. Oprócz tego, Īe sama ta czynnoĞü bĊdzie doĞü uciąĪliwa, to jej wynik spowoduje zamieszanie równieĪ wĞród samych uĪytkowników, którzy przecieĪ mogli zapisaü adres wĞród swoich ulubionych zakáadek, a po zmianie adresu serwletu adres ten przestanie dziaáaü i uĪytecznoĞü aplikacji znowu ucierpi. Zalecamy jawne blokowanie dostĊpu do serwletów wchodzących w skáad aplikacji internetowej bez odpowiednio odwzorowanego adresu URL. Odwzorowanie takie moĪna zdefiniowaü za pomocą elementu servlet-mapping pliku web.xml. Przykáadowe odwzorowanie znajduje siĊ w pliku web.xml aplikacji app-blank, którą moĪna pobraü z witryny ftp://ftp.helion.pl/ ´przyklady/jsp2w2.zip. Serwlety, komponenty JavaBeans i klasy pomocnicze znajduj¾ce si w pakietach JAR JeĪeli serwlety lub inne pliki z rozszerzeniem .class wchodzą w skáad pakietów JAR, wów- czas pliki JAR powinny siĊ znajdowaü w katalogu WEB-INF/lib. JeĪeli klasy znajdują siĊ w pakietach, wówczas wewnątrz pliku JAR klasy te powinny znajdowaü siĊ w katalogu o nazwie odpowiadającej nazwie ich pakietu. WiĊkszoĞü serwerów umoĪliwia wspóáuĪyt- kowanie plików JAR przez róĪne aplikacje internetowe. Funkcja ta nie jest jednak standardem, a konkretny sposób jej dziaáania zaleĪy od rodzaju serwera. Na serwerze Tomcat wspóáuĪyt- kowane pliki JAR umieszcza siĊ w katalogu katalog_tomcat/shared/lib. Deskryptor wdroÑenia Deskryptor wdroĪenia, czyli plik web.xml, powinien znajdowaü siĊ w podkatalogu WEB-INF katalogu gáównego aplikacji internetowej. Szczegóáowe informacje na temat sposobu uĪywania pliku web.xml znajdują siĊ w rozdziale 2., „Kontrolowanie dziaáania aplikacji przy uĪyciu pliku web.xml”. Warto zwróciü uwagĊ, Īe niektóre serwery mogą obsáugiwaü globalny plik web.xml, dotyczący wszystkich aplikacji internetowych. Na przykáad serwer Tomcat wyko- rzystuje plik katalog_tomcat/conf/web.xml, w którym znajdują siĊ globalne ustawienia konfiguracyjne. Plik taki jest jednak cechą charakterystyczną tylko tego serwera. Standardem jest wyáącznie plik web.xml definiowany dla kaĪdej aplikacji oddzielnie i umieszczany w ka- talogu WEB-INF aplikacji internetowej. Deskryptory bibliotek znaczników Pliki bĊdące deskryptorami bibliotek znaczników (ang. Tag Library Descriptor — TLD) umieszcza siĊ w katalogu WEB-INF lub jego dowolnym podkatalogu. Zaleca siĊ jednak, by deskryptory te umieszczaü w podkatalogu tlds katalogu WEB-INF. Grupowanie deskryptorów 22 Core Java Servlets i JavaServer Pages w jednym katalogu (na przykáad o nazwie tlds) upraszcza proces zarządzania nimi. Strony JSP uzyskują dostĊp do plików TLD znajdujących siĊ w WEB-INF za pomocą dyrektywy taglib o nastĊpującej postaci: @ taglib uri= /WEB-INF/tlds/mójPlikTaglib.tld … PoniewaĪ nie mamy do czynienia z klientem (takim jak choüby przeglądarka internetowa), lecz z serwerem, który wykorzystuje plik TLD, blokada dostĊpu do zawartoĞci znajdującej siĊ w katalogu WEB-INF w tym przypadku nie obowiązuje. Gdy plik z rozszerzeniem .tld jest umieszczany wewnątrz pliku JAR, powinien siĊ on znaj- dowaü w katalogu META-INF lub w którymĞ z jego podkatalogów. KoniecznoĞü zmiany lokalizacji z WEB-INF na META-INF wynika z tego, Īe pliki JAR nie są archiwami aplikacji WWW, a wiĊc nie zawierają katalogu WEB-INF. WiĊcej informacji na temat plików TLD znajduje siĊ w rozdziale 7., „Biblioteki znaczników. Zagadnienia podstawowe”. Pliki znaczników Pliki znaczników powinny znajdowaü siĊ w katalogu WEB-INF/tags lub jego podkatalogu. Podobnie jak w przypadku plików TLD, pliki znaczników pozostają dostĊpne dla stron JSP nawet wówczas, gdy znajdują siĊ w katalogu WEB-INF. Pliki znaczników równieĪ deklaruje siĊ na stronie JSP przy uĪyciu dyrektywy taglib. Jednak zamiast uri naleĪy w ich przypadku zdefiniowaü atrybut tagdir. JeĪeli na przykáad plik mójPlikZnaczników.tag umieszczony zostanie w katalogu WEB-INF/tags aplikacji internetowej, dyrektywa taglib strony JSP powinna mieü nastĊpującą postaü: @ taglib tagdir= /WEB-INF/tags … W takim przypadku serwer automatycznie wygeneruje plik TLD dla plików znaczników, zatem nie trzeba samodzielnie definiowaü odpowiedniego odwzorowania. Pliki znaczników moĪna takĪe doáączaü do plików JAR. Sam plik JAR powinien zostaü umieszczony w katalogu WEB-INF/lib, zgodnie z tym, co wspomniano juĪ wczeĞniej. Jednak wewnątrz pliku JAR pliki znaczników powinny znajdowaü siĊ w katalogu META-INF/tags. W takim przypadku serwer nie wygeneruje automatycznie TLD, dlatego konieczne jest zadekla- rowanie plików znaczników i ĞcieĪki dostĊpu w pliku z rozszerzeniem .tld. Warto zauwaĪyü, Īe plik z rozszerzeniem .tld moĪe zawieraü równieĪ deklaracje wáasnych znaczników innych typów. WiĊcej informacji na temat plików znaczników znajduje siĊ w rozdziale 7., „Biblioteki znaczników. Zagadnienia podstawowe”. Plik manifestu WAR Gdy tworzony jest plik WAR (wiĊcej na ten temat w punkcie 1.5), plik MANIFEST.MF zostaje umieszczony w podkatalogu META-INF. Zazwyczaj narzĊdzie jar automatycznie tworzy plik MANIFEST.MF i umieszcza go w katalogu META-INF, a w przypadku rozpakowywania pliku WAR plik manifestu jest ignorowany. Czasami jednak trzeba jawnie zmodyfikowaü plik MANIFEST.MF, dlatego warto wiedzieü, gdzie siĊ on znajduje. RozdziaÄ 1. Q UÑywanie i wdraÑanie aplikacji internetowych 23 1.3. Rejestrowanie aplikacji internetowych na serwerze Jak wspominano juĪ wczeĞniej, aplikacje internetowe są przenoĞne. Bez wzglĊdu na to, jaki serwer jest uĪywany, pliki aplikacji są przechowywane w takiej samej strukturze katalogów, a dostĊp do nich uzyskuje siĊ za poĞrednictwem adresów URL w takiej samej postaci. Na ry- sunku 1.2 przedstawiono strukturĊ adresów URL, których naleĪaáoby uĪyü dla najprostszej aplikacji o nazwie myWebApp. W tym punkcie opisane zostaną sposoby instalowania i wyko- nywania prostej aplikacji internetowej na róĪnych platformach. Rysunek 1.2. Struktura aplikacji internetowej myWebApp Same aplikacje internetowe są w peáni przenoĞne, natomiast juĪ przebieg procesu rejestracji aplikacji zaleĪy od serwera. Aby na przykáad przenieĞü aplikacjĊ myWebApp z jednego serwera na drugi, nie trzeba wprowadzaü Īadnych zmian w strukturze katalogów widocznej na ry- sunku 1.2, natomiast umiejscowienie katalogu gáównego aplikacji (w tym przypadku jest to myWebApp) zaleĪy od rodzaju uĪywanego serwera. Podobnie od rodzaju serwera zaleĪy sam sposób wskazywania serwerowi, Īe aplikacja powinna byü wywoáywana przy uĪyciu adresu URL w postaci http://komputer/myWebApp/. W tym punkcie przyjĊto zaáoĪenie, Īe wszystkie kroki zmierzające do zainstalowania i skon- figurowania serwera zostaáy juĪ wykonane. WiĊcej informacji na temat konfiguracji serwe- ra moĪna znaleĨü w jego dokumentacji, w pierwszym rozdziale pierwszego tomu niniejszej ksiąĪki lub (w przypadku uĪytkowników serwera Tomcat) w uaktualnianym na bieĪąco prze- wodniku po instalacji i konfiguracji serwera, dostĊpnym w witrynie http://www.coreservlets. ´com. W tym miejscu zaprezentowany zostanie tylko krótki przykáad, a nastĊpnie w jednym z kolejnych podpunktów opisana zostanie procedura rejestracji na serwerze Tomcat. Szcze- góáowy opis procesu wdroĪenia przykáadowej aplikacji internetowej na serwerze Tomcat zostanie przedstawiony w punkcie 1.6, „Tworzenie prostej aplikacji internetowej”. Zgodnie z informacjami zawartymi w punkcie 1.4, „Strategie rozwoju i wdraĪania aplikacji internetowych”, standardową strategią jest tworzenie aplikacji w Ğrodowisku programistycz- nym i regularne kopiowanie jej do poszczególnych katalogów wdroĪeniowych w celu przete- stowania rozwiązania na róĪnych serwerach. Odradza siĊ umieszczanie katalogu rozwojowego 24 Core Java Servlets i JavaServer Pages bezpoĞrednio w katalogu wdroĪeniowym serwera, poniewaĪ znacznie utrudni to wdroĪenie aplikacji na kilku serwerach, trudno bĊdzie pracowaü nad aplikacją w czasie jej dziaáania, a takĪe utrudnione zostanie nadanie odpowiedniej organizacji plików. Lepszym rozwiązaniem jest uĪycie oddzielnego katalogu rozwojowego i zastosowanie jednej ze strategii opisanych w punkcie 1.4, „Strategie rozwoju i wdraĪania aplikacji internetowych”. Najprostszym rozwią- zaniem jest utworzenie skrótu (w systemie Windows) lub dowiązania symbolicznego (w Ğro- dowisku UNIX/Linux), prowadzącego do katalogów wdroĪeniowych poszczególnych serwe- rów, oraz kopiowanie caáego katalogu rozwojowego za kaĪdym razem, gdy przyjdzie czas na wdroĪenie aplikacji. Na przykáad w systemie Windows przy uĪyciu prawego przycisku myszy moĪna przeciągnąü folder rozwojowy do utworzonego skrótu, zwolniü przycisk i wybraü polecenie Kopiuj. Rejestrowanie aplikacji internetowych na serwerze Tomcat Tworzenie aplikacji internetowej na serwerze Tomcat polega na utworzeniu odpowiedniej struktury katalogów i skopiowanie jej do katalogu katalog_tomcat/webapps. Za caáą resztĊ odpowiada juĪ sam serwer. MoĪliwoĞü wdraĪania aplikacji internetowych przez kopiowanie struktury katalogów do jednego z katalogów serwera to tak zwane wdraĪanie na gorąco (ang. hot-deployment) albo wdraĪanie automatyczne (ang. auto-deployment). Katalog w strukturze katalogów serwera, który odpowiada za tĊ funkcjĊ, to tak zwany katalog wdraĪania na gorąco (ang. hot-deploy directory) albo katalog wdraĪania automatycznego (ang. auto-deploy directory). WiĊkszoĞü serwerów WWW, jeĞli nie wszystkie wspóáczesne serwery WWW, obsáuguje taki wáaĞnie sposób wdraĪania aplikacji. Aby zwiĊkszyü kontrolĊ nad procesem wdroĪenia, moĪna odpowiednio zmodyfikowaü zawartoĞü pliku katalog_ ´tomcat/conf/server.xml (jest to plik charakterystyczny tylko dla serwera Tomcat), tak aby odwoáywaá siĊ on do aplikacji. PoniĪej przedstawiono kolejne czynnoĞci, jakie trzeba wykonaü, aby utworzyü aplikacjĊ inter- netową dostĊpną za poĞrednictwem adresu URL rozpoczynającego siĊ od http://komputer/ ´myWebApp. 1. Utworzyü strukturĊ katalogów dla aplikacji internetowej, w której katalog gáówny bĊdzie nosiü nazwĊ myWebApp. PoniewaĪ jest to nasza wáasna struktura rozwojowa, moĪna ją umieĞciü w dowolnie wybranej lokalizacji. Struktura katalogów powinna byü zgodna ze strukturą przedstawioną w punkcie 1.2, „Struktura aplikacji internetowych”. Aby zmniejszyü liczbĊ czynnoĞci, jakie naleĪy wykonaü w ramach tego kroku, z ftp://ftp.helion.pl/przyklady/jsp2w2.zip moĪna pobraü aplikacjĊ app- blank. Zawiera ona wszystkie niezbĊdne katalogi oraz przykáadowy deskryptor wdroĪenia web.xml. Pozostaje wówczas tylko zmieniü nazwĊ katalogu gáównego app-blank na myWebApp. JeĪeli natomiast zapadnie decyzja o rĊcznym utworzeniu wymaganych katalogów, naleĪy postĊpowaü zgodnie z dalszym opisem. Najpierw trzeba utworzyü katalog o nazwie myWebApp — moĪe siĊ on znajdowaü w dowolnej lokalizacji w systemie poza katalogiem instalacyjnym serwera. W katalogu tym trzeba utworzyü podkatalog o nazwie WEB-INF, w nim zaĞ utworzyü kolejny katalog classes. NastĊpnie naleĪy utworzyü deskryptor wdroĪenia web.xml i umieĞciü go w katalogu WEB-INF. Szczegóáowe informacje na temat deskryptora wdroĪenia znajdują siĊ w rozdziale 2., „Kontrolowanie dziaáania aplikacji przy uĪyciu deskryptora web.xml”. Na razie RozdziaÄ 1. Q UÑywanie i wdraÑanie aplikacji internetowych 25 wystarczy tylko skopiowaü plik web.xml znajdujący siĊ w katalogu katalog_tomcat/ ´webapps/ROOT/WEB-INF albo uĪyü wersji deskryptora znajdującej siĊ w aplikacji app-blank. Po utworzeniu odpowiedniej struktury katalogów naleĪy w katalogu myWebApp umieĞciü prostą stronĊ JSP, a do katalogu WEB-INF/classes skopiowaü prosty serwlet o nazwie MyServlet.class. 2. Zadeklarowaü serwlet i skierowaü go na odpowiedni adres URL przez wprowadzenie odpowiednich zmian w pliku web.xml bĊdącym deskryptorem wdroĪenia. W odróĪnieniu od stron JSP serwlety muszą byü deklarowane jawnie. NaleĪy zatem podaü peáną ĞcieĪkĊ dostĊpu do klasy serwletu, aby wskazaü serwerowi, Īe serwlet ten istnieje. Dodatkowo konieczne jest wskazanie serwerowi adresów URL, które po wpisaniu przez uĪytkownika powinny wywoáaü serwlet MyServlet.class. Obydwie wspomniane czynnoĞci moĪna zrealizowaü przez wstawienie w pliku web.xml poniĪszego kodu: servlet servlet-name MyName /servlet-name servlet-class mypackage.MyServlet /servlet-class /servlet servlet-mapping servlet-name MyName /servlet-name url-pattern /MyAddress /url-pattern /servlet-mapping Element servlet oraz jego podelementy wskazują serwerowi nazwĊ, za pomocą której serwlet bĊdzie deklarowany, a takĪe peáną ĞcieĪkĊ dostĊpu do klasy serwletu. Element servlet-mapping oraz jego podelementy wskazują serwerowi serwlet, który ma byü wywoáywany, gdy klient wywoáa adres URL odpowiadający wzorcowi wskazanemu jako wartoĞü elementu url-pattern. Zatem serwlet zadeklarowany jako MyName bĊdzie wywoáywany przez adres w postaci http://komputer/ ´myWebApp/MyAddress. 3. Skopiowaü katalog myWebApp do katalogu katalog_tomcat/webapps. ZaáóĪmy, Īe serwer Tomcat zostaá zainstalowany w katalogu C:katalog_tomcat. Katalog myWebApp powinno siĊ zatem skopiowaü do katalogu webapps i uzyskaü w ten sposób nastĊpujące ĞcieĪki dostĊpu: C:katalog_tomcatwebappsmyWebApp ´HelloWebApp.jsp, C:katalog_tomcatwebappsmyWebAppWEB-INFclasses ´HelloWebApp.class oraz C:katalog_tomcatwebappsmyWebAppWEB-INF ´web.xml. Katalog ten moĪna by nastĊpnie zawrzeü w pliku WAR (wiĊcej na ten temat w punkcie 1.5) i umieĞciü go w katalogu C:katalog_tomcatwebapps. 4. Opcjonalnie — w pliku server.xml dopisaü element Context. DomyĞlnie Tomcat skonfiguruje aplikacjĊ internetową w taki sposób, by prefiks jej adresu URL dokáadnie odpowiadaá nazwie gáównego katalogu tej aplikacji. JeĪeli takie rozwiązanie bĊdzie wystarczające, moĪna pominąü krok opisywany w tym punkcie. JeĪeli natomiast konieczne jest zmodyfikowanie tego etapu rejestracji aplikacji, w pliku katalog_tomcat/ ´conf/server.xml moĪna dodaü element Context. Przed rozpoczĊciem edycji zawartoĞci pliku server.xml naleĪy utworzyü jego kopiĊ bezpieczeĔstwa, poniewaĪ nawet drobny báąd skáadniowy uniemoĪliwi prawidáowe uruchomienie serwera Tomcat. Natomiast w nowszych wersjach serwera Tomcat zaleca siĊ, by element Context (oraz jego podelementy) umieszczaü w pliku context.xml. Plik context.xml trzeba wówczas umieĞciü obok pliku web.xml, w katalogu WEB-INF aplikacji internetowej. 26 Core Java Servlets i JavaServer Pages Element Context ma kilka atrybutów, które są udokumentowane na stronie pod adresem http://tomcat.apache.org/tomcat-5.5-doc/config/context.html. Za pomocą tego elementu moĪna decydowaü, czy naleĪy uĪywaü plików cookies albo czy naleĪy przepisywaü adresy URL w celu Ğledzenia sesji; moĪna takĪe wáączaü i wyáączaü moĪliwoĞü przeáadowywania serwletów (to znaczy monitorowaü klasy pod kątem zachodzących w nich zmian i przeáadowywaü serwlety tych klas, których pliki na dysku ulegáy zmianie). MoĪna równieĪ ustawiaü poziomy debugowania. Jednak w przypadku prostych aplikacji internetowych wystarczy uĪycie tylko dwóch wymaganych atrybutów: path (prefiks adresu URL) oraz docBase (bazowy katalog instalacyjny dla aplikacji internetowych wzglĊdem katalogu katalog_tomcat/webapps). Definicja elementu Context powinna wyglądaü podobnie do poniĪszej: Context path= /jakaħ-aplikacja docBase= myWebApp / NaleĪy pamiĊtaü, by jako prefiks adresu URL nie podawaü prefiksu /examples, poniewaĪ jest on juĪ uĪywany przez Tomcat jako prefiks dla przykáadowych aplikacji internetowych. Na serwerze Tomcat nie naleĔy uĔywaè prefiksu /examples w roli prefiksu adresów URL aplikacji internetowych. 5. Wywoáaü stronĊ JSP i serwlet. Adres URL http://komputer/myWebApp/ ´myPage.jsp wywoáa stronĊ JSP, zaĞ adres http://komputer/myW
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Core Java Servlets i JavaServer Pages. Tom II. Wydanie II
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ą: