Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00517 008002 10466743 na godz. na dobę w sumie
JSP i XML - książka
JSP i XML - książka
Autor: , Liczba stron: 496
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-802-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> xml i xslt - programowanie
Porównaj ceny (książka, ebook, audiobook).
Tworzenie aplikacji i usług WWW za pomocą JSP i XML-a

Java wydaje się idealnym językiem do przetwarzania XML-a. W oparciu o Javę stworzono olbrzymią liczbę aplikacji korzystających z XML, zarówno przeznaczonych dla użytkownika końcowego, jak i rozmaitych bibliotek, parserów itp., z których z powodzeniem korzystają programiści. Ostatnim krzykiem mody są usługi WWW (web services). I znowu, Java jest jedną z najpopularniejszych platform do ich implementacji, także z tego względu, że usługi WWW oparte są o XML.

'JSP i XML' pokazuje praktyczne aspekty wykorzystania XML-a do budowy aplikacji WWW przy wykorzystaniu Java Server Pages (JSP). Po omówieniu podstaw JSP oraz XML i towarzyszących mu standardów (XSL, XPath, DOM) autor opisuje bardziej zaawansowane aspekty użycia XML w projektach opartych o JSP, by przejść do omówienia metod tworzenia usług WWW.

W książce omówiono:

Książce towarzyszą dodatki poświęcone konfiguracji środowiska programistycznego, wprowadzeniu do JSP, tworzeniu bibliotek znaczników JSP oraz standardom XML, XSLT i Xpath.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI JSP i XML KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Autorzy: Casey Kochmer, Erica Frandsen T³umaczenie: Bartosz Grabski ISBN: 83-7197-802-2 Tytu³ orygina³u: JSP and XML. Integrating XML and Web Services in Your JSP Application Format: B5, stron: 474 Przyk³ady na ftp: 53 kB Ksi¹¿ka „JSP i XML” ukazuje praktyczne aspekty wykorzystania jêzyka XML do budowy aplikacji internetowych przy wykorzystaniu Java Server Pages (JSP). Po omówieniu podstaw JSP i XML-a oraz towarzysz¹cych im standardów (XSL, XPath, DOM) autor opisuje bardziej zaawansowane aspekty u¿ycia jêzyka XML w projektach opartych o JSP i przechodzi do omówienia metod tworzenia us³ug opartych na WWW. W ksi¹¿ce omówiono: • XML, XSL i XPath • DOM i parsery DOM (JDOM, dom4j) • Szybkie parsowanie za pomoc¹ SAX • Tworzenie w³asnych znaczników JSP • Uruchamianie w³asnych us³ug WWW • Opis us³ugi WWW za pomoc¹ WSDL Ksi¹¿ce towarzysz¹ dodatki poġwiêcone konfiguracji ġrodowiska programistycznego, wprowadzeniu do JSP, tworzeniu bibliotek znaczników JSP oraz standardom XML, XSLT i Xpath. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Spis treści O Autorach ...................................................................................... 11 Wprowadzenie ................................................................................. 13 Część I Wprowadzenie do danych, XML-a i usług WWW ...............21 Rozdział 1. Integracja JSP i danych.................................................................... 23 Wykorzystywanie JSP we współpracy z bazą danych ......................................................24 Wprowadzanie danych................................................................................................24 Przegląd kodu wprowadzającego dane .......................................................................27 Przeglądanie danych ...................................................................................................30 Inne rozważania.................................................................................................................33 Zarządzanie połączeniami...........................................................................................34 Testowanie komponentów ..........................................................................................34 Testowanie skali..........................................................................................................35 Podstawowe zagadnienia projektowe................................................................................35 Używanie biblioteki znaczników................................................................................36 Podsumowanie ..................................................................................................................39 Rozdział 2. Wprowadzenie do XML-a i XSL-a ....................................................... 41 Co to jest XML?................................................................................................................41 Reguły XML .....................................................................................................................42 Znaczniki i elementy...................................................................................................43 Deklaracja XML .........................................................................................................45 Deklaracja typu dokumentu ........................................................................................46 Schematy.....................................................................................................................49 Encje znakowe ............................................................................................................49 Sekcje CDATA ...........................................................................................................50 Komentarze .................................................................................................................51 Dokumenty poprawne pod względem składniowym i strukturalnym ........................51 Wykorzystywanie XML-a.................................................................................................52 Przetwarzanie..............................................................................................................52 XSL ...................................................................................................................................53 Łączenie arkuszy stylów .............................................................................................54 Przestrzenie nazw........................................................................................................55 Szablony......................................................................................................................56 Błędy arkusza stylów ..................................................................................................58 Spacje i kodowanie .....................................................................................................59 Deklaracje encji ..........................................................................................................60 Drzewa, węzły i rodzina .............................................................................................61 XPath...........................................................................................................................63 Podsumowanie ..................................................................................................................78 6 JSP i XML Rozdział 3. Podstawy usług WWW ..................................................................... 79 Czym są usługi WWW? ....................................................................................................79 Czytanie z kryształowej kuli .............................................................................................82 ABC usług WWW.............................................................................................................84 Podstawowe elementy składowe.................................................................................85 Inicjatywy zarządzania usługami................................................................................91 API Javy......................................................................................................................94 Jak używać usługi WWW .................................................................................................95 Używanie SOAP .........................................................................................................96 Surfowanie w Internecie ...........................................................................................102 Podsumowanie ................................................................................................................104 Część II Integracja JSP i XML-a .................................................107 Rozdział 4. Szybkie wprowadzenie do JSP i XML-a ............................................ 109 Związek pomiędzy XML-em i JSP .................................................................................109 Ostrzeżenie................................................................................................................110 JAXP, Xerces i Xalan ...............................................................................................111 JSP i XML: Przegląd ................................................................................................127 API XML i XSL w Javie.................................................................................................127 DOM (obiektowy model dokumentu XML).............................................................128 SAX (parser XML) ...................................................................................................128 JDOM (reprezentacja dokumentu XML)..................................................................129 dom4j (reprezentacja dokumentu XML) ..................................................................129 JAXB (parser i reprezentacja dokumentu XML)......................................................130 Podsumowanie ................................................................................................................130 Rozdział 5. Używanie DOM .............................................................................. 131 Co to jest DOM? .............................................................................................................131 Zalety DOM ..............................................................................................................132 Wady DOM...............................................................................................................132 Węzły i struktura drzewiasta ...........................................................................................132 Węzeł dokumentu .....................................................................................................133 Programowanie z DOM ..................................................................................................136 Atrybuty ....................................................................................................................139 Przestrzenie nazw......................................................................................................142 Usuwanie węzłów .....................................................................................................143 Przenoszenie węzłów ................................................................................................145 Kopiowanie i dołączanie węzłów .............................................................................147 Programowe tworzenie dokumentu XML ................................................................150 Przenoszenie węzłów pomiędzy dokumentami ........................................................153 TreeWalker ...............................................................................................................155 Nodelterator ..............................................................................................................158 Zakresy......................................................................................................................158 JDOM, dom4j i pośredni DOM ......................................................................................159 Podsumowanie ................................................................................................................159 Rozdział 6. Programowanie SAX ...................................................................... 161 Co to jest SAX?...............................................................................................................161 Działanie SAX.................................................................................................................162 Interfejsy SAX ..........................................................................................................162 Ujemne strony SAX..................................................................................................163 Różnice pomiędzy SAX1 i SAX2.............................................................................163 Pierwszy przykład SAX............................................................................................164 Znaki i spacje ............................................................................................................167 Przetwarzanie a sprawdzanie prawidłowości strukturalnej ......................................169 Ponownie o znakach .................................................................................................170 Obsługa błędów ........................................................................................................172 Ignorowane spacje ....................................................................................................175 Odwołania do encji ...................................................................................................175 Lokalizator dokumentów ..........................................................................................178 Jak to działa?.............................................................................................................182 Ponownie o przetwarzaniu i sprawdzaniu prawidłowości strukturalnej...................182 Użycie SAX do tworzenia HTML ............................................................................182 Podsumowanie ................................................................................................................186 Rozdział 7. Pomyślne wykorzystanie JSP i XML-a w aplikacji ............................ 187 Używanie reprezentacji Java dokumentu XML ..............................................................187 Dlaczego nie użyć po prostu SAX bądź DOM?..............................................................188 Instalacja JDOM i dom4j ................................................................................................189 JDOM........................................................................................................................189 dom4j ........................................................................................................................189 Uwagi........................................................................................................................189 Dlaczego JDOM i dom4j?...............................................................................................189 JDOM i dom4j — szybkie porównanie...................................................................190 Najczęstsze sposoby wykorzystywania XML-a............................................................190 Używanie bazy danych z XML-em.................................................................................191 Pliki inicjalizacyjne XML.........................................................................................192 Przechowywanie danych inicjalizacyjnych ..............................................................192 Użycie nasłuchu do przechowania obiektu DatabaseParameter...............................194 Użycie modelu XML Java ........................................................................................197 Zagadnienia wątkowania ..........................................................................................200 Otrzymanie liczby wierszy .......................................................................................200 XML i WebRowSet ..................................................................................................201 Tworzenie klasy pomocniczej dom4j .......................................................................201 Tworzenie klasy obsługi bannerów ..........................................................................203 Tworzenie testowej strony JSP .................................................................................206 Używanie reprezentacji Java dokumentu XML........................................................208 Używanie JAXB .......................................................................................................208 HashMap kontra reprezentacja Java XML ...............................................................208 Pobieranie plików XML..................................................................................................209 Definiowanie pliku XML..........................................................................................210 Koncepcja projektu XML .........................................................................................212 Odczyt plików XML i tworzenie nowego wyjścia ...................................................213 Używanie JDOM ......................................................................................................216 Tworzenie końcowej strony JSP...............................................................................217 Podsumowanie ................................................................................................................219 Rozdział 8. Integracja JSP i usług WWW .......................................................... 221 Myślenie w kategoriach JSP i usług WWW ...................................................................221 Biblioteki znaczników kontra usługi WWW ............................................................223 Użycie bibliotek znaczników w celu uzyskania dostępu do usługi WWW..............224 Integracja usługi WWW na stronie JSP ..........................................................................225 Ostrzeżenie związane z biblioteką znaczników i usługą ..........................................235 Naprawianie błędów sieci .........................................................................................235 Niezawodność usługi WWW....................................................................................236 Kiedy powinno się stworzyć własną usługę WWW?......................................................237 Strony JSP kontra usługa WWW..............................................................................238 Tworzenie korporacyjnej usługi WWW .........................................................................239 Cel przykładu usługi WWW.....................................................................................239 Realia tworzenia usługi WWW ................................................................................240 C:AndrzejPDFJSP i XML00-spis-09.doc (02-10-30) 7 8 JSP i XML Przygotowanie przykładu..........................................................................................240 Inicjalizacja danych ..................................................................................................241 Dostęp do danych aplikacji.......................................................................................242 Tworzenie rzeczywistej usługi WWW .....................................................................243 Rozmieszczenie usługi WWW .................................................................................245 Gdzie jest WSDL? ....................................................................................................247 Strona JSP do rozmieszczenia pliku deskryptora .....................................................248 Więcej o bezpieczeństwie .........................................................................................249 Tworzenie strony dostępu do usługi .........................................................................250 Pomoc Apache SOAP .....................................................................................................253 Podsumowanie ................................................................................................................253 Rozdział 9. Zaawansowane techniki JSP i XML ................................................ 255 Dostęp do usług WWW z poziomu przeglądarki............................................................255 Użycie apletu ............................................................................................................256 Obsługa dużych dokumentów XML ...............................................................................262 JDOM........................................................................................................................263 dom4j ........................................................................................................................263 Obsługa znaków specjalnych i kodowanie......................................................................268 Używanie bibliotek znaczników XML ...........................................................................271 Biblioteka znaczników XSL .....................................................................................271 Biblioteka XTags dla XML ......................................................................................273 Podsumowanie ................................................................................................................278 Część III Tworzenie stron JSP przy użyciu XML-a .........................279 Rozdział 10. Wykorzystanie XSL-a i JSP w projektowaniu witryny WWW.............. 281 Bezpośrednie posługiwanie się plikami XML ................................................................281 Jak działa odwzorowanie serwletów?.......................................................................283 Tworzenie programu obsługi serwletu XML ..................................................................285 Tworzenie czytnika SAX..........................................................................................285 Tworzenie serwletu do przetwarzania plików XML ................................................288 Rejestracja serwletu ..................................................................................................292 Tworzenie strony błędu.............................................................................................292 Tworzenie plików testowych ....................................................................................293 Bezpośredni dostęp do XML-a .................................................................................297 Podsumowanie ................................................................................................................298 Rozdział 11. Wykorzystanie XML-a w systemach raportowania............................ 299 Architektura systemów raportowania..............................................................................299 Kiedy używać XML-a w raportowaniu...........................................................................300 Źródło danych dla raportów ............................................................................................301 Tworzenie danych w bazie danych ...........................................................................301 ResultSet do XML...........................................................................................................306 Zasada działania........................................................................................................306 Łączenie wszystkiego razem...........................................................................................310 Arkusz stylów sortowania tabeli .....................................................................................314 Arkusz stylów tabeli krzyżowej ......................................................................................319 Podsumowanie ................................................................................................................322 Rozdział 12. Zaawansowany XML w systemach raportowania............................. 323 Raporty wielostronicowe.................................................................................................323 JSP dla raportu wielostronicowego...........................................................................324 Arkusz stylów dla raportu wielostronicowego .........................................................329 Raporty z danymi o relacji jeden do wielu......................................................................335 JSP dla raportu jeden do wielu..................................................................................337 Arkusz stylów dla raportu jeden do wielu ................................................................340 Rzeczywiste systemy raportowania ................................................................................343 Jeszcze raz o dokumentach poprawnych pod względem składniowym ...............................344 Podsumowanie ................................................................................................................344 Rozdział 13. Rozważania o przeglądarce współpracującej z XML-em ....................... 345 XML po stronie klienta a obsługa przeglądarek .............................................................346 JavaScript i XML po stronie klienta ...............................................................................347 JSP.............................................................................................................................347 Przekształcenia po stronie klienta a XML.......................................................................354 Wspólny plik źródłowy JavaScript dla przeglądarek................................................354 JSP.............................................................................................................................359 Dwa arkusze stylów XSL..........................................................................................361 Podsumowanie ................................................................................................................365 Rozdział 14. Tworzenie usługi WWW .................................................................. 367 Projektowanie usługi WWW...........................................................................................368 Jaki jest cel? ..............................................................................................................368 Jakie są wymagania?.................................................................................................368 Jakich danych potrzebuje usługa?.............................................................................369 Tworzenie usługi WWW.................................................................................................369 Tworzenie programu obsługi plików ........................................................................369 Tworzenie narzędzia wyszukiwania .........................................................................371 Tworzenie ElementHandler ......................................................................................372 Tworzenie obiektu Document...................................................................................374 Zastosowanie arkusza stylów....................................................................................375 Tworzenie arkusza stylów.........................................................................................376 Tworzenie usługi WWW ..........................................................................................378 Rejestracja usługi WWW w Apache SOAP .............................................................378 Tworzenie pliku WSDL ..................................................................................................379 Przestrzenie nazw WSDL .........................................................................................380 Tworzenie pliku WSDL JSPBuzz.............................................................................381 Plik implementacji WSDL........................................................................................386 Dokumentacja WSDL...............................................................................................386 Rejestracja w UDDI ........................................................................................................387 Rejestracja usługi ......................................................................................................387 Dostęp do dokumentu WSDL za pomocą Javy...............................................................389 Podsumowanie ................................................................................................................392 Rozdział 15. Zaawansowane projektowanie aplikacji .......................................... 395 Dynamiczne strony JSP...................................................................................................395 Kiedy nie używać dynamicznych stron JSP?............................................................397 Przykład dynamicznej strony JSP.............................................................................397 Zagadnienia bezpieczeństwa serwera SOAP ..................................................................406 Użycie stref bezpieczeństwa w serwerze Tomcat.....................................................407 Filtrowanie serwletów...............................................................................................407 Inne metody zabezpieczeń w Apache SOAP............................................................412 Krótkie spojrzenie ...........................................................................................................414 Usługi WWW — SSL i szyfrowanie danych ...........................................................414 Używanie Cocoon.....................................................................................................415 Podsumowanie ................................................................................................................415 C:AndrzejPDFJSP i XML00-spis-09.doc (02-10-30) 9 10 JSP i XML Dodatki .......................................................................................417 Dodatek A Instalacja i konfiguracja................................................................. 419 Instalacja środowiska JSP ...............................................................................................419 Java Software Development Kit (SDK)....................................................................419 Serwer Tomcat ..........................................................................................................420 Tworzenie witryny WWW dla książki .....................................................................421 NetBeans .........................................................................................................................422 Serwer bazy danych MySQL ..........................................................................................423 Tworzenie bazy danych MySQL ..............................................................................424 Instalacja sterownika JDBC......................................................................................426 Podsumowanie ................................................................................................................426 Dodatek B Wprowadzenie do JSP .................................................................... 427 Podstawy JSP ..................................................................................................................427 Przykład bannera JSP................................................................................................428 Akcje .........................................................................................................................431 Akcje, dyrektywy oraz obiekty niejawne ...........................................................................431 Bardziej złożony przykład JSP........................................................................................432 Dodatkowa informacja o JSP ..........................................................................................441 Co to jest JSP i jak działa?........................................................................................441 Składnia XML JSP....................................................................................................443 Zasoby dokumentacji JSP .........................................................................................443 Podsumowanie ................................................................................................................444 Dodatek C Biblioteka znaczników.................................................................... 445 Omówienie biblioteki znaczników..................................................................................445 Co to jest biblioteka znaczników?...................................................................................446 Zalety ........................................................................................................................446 Wady .........................................................................................................................447 Tworzenie biblioteki znaczników w sześciu krokach .....................................................447 Pojęcia biblioteki znaczników.........................................................................................448 Izolacja algorytmów biznesowych............................................................................448 Program obsługi znacznika .......................................................................................448 Deskryptor biblioteki znaczników (TLD).................................................................451 Tworzenie pliku dystrybucji .....................................................................................451 Rejestracja biblioteki znaczników ............................................................................452 Użycie deklaracji biblioteki znaczników na stronie JSP ...............................................453 Tworzenie biblioteki znaczników ...................................................................................453 Wyodrębnienie algorytmów biznesowych................................................................453 Tworzenie programu obsługi znacznika ...................................................................453 Deskryptor biblioteki znaczników ............................................................................457 Rejestracja biblioteki znaczników ............................................................................459 Używanie biblioteki znaczników na stronie JSP ......................................................459 Uwagi ogólne ..................................................................................................................461 Dane ciała..................................................................................................................461 Uwagi projektowe.....................................................................................................462 Puste znaczniki..........................................................................................................462 Wątkowanie ..............................................................................................................463 Podsumowanie ................................................................................................................463 Dodatek D Omówienie XSL.............................................................................. 465 XSLT i XPath..................................................................................................................465 Węzły kontekstu i węzły bieżące..............................................................................466 Odniesienie......................................................................................................................467 Elementy XSLT ........................................................................................................467 Funkcje XPath...........................................................................................................470 Skorowidz...................................................................................... 475 Rozdział 4. Szybkie wprowadzenie do JSP i XML-a W tym rozdziale zajmujemy się zagadnieniem łączenia JSP i XML-a. Pokażemy w nim, jak łatwo umieścić XML i XSLT na stronie JSP. Omówimy również kilka API, które umożliwiają wykorzystanie XML-a w Javie. Rozdział zaczyna się krótkimi rozważaniami na temat powiązań między XML-em i JSP. Następnie przedstawiamy trzy podstawowe API: JAXP, Xerces i Xalan. Wykorzy- stując te biblioteki Javy pogłębimy wiedzę zdobytą w rozdziale 2., „Wprowadzenie do XML-a i XSL-a”, i przedstawimy praktyczne zastosowania w środowisku JSP. Po omówieniu prostych kodów pokażemy pełniejszy przykład budowy procesora biuletynu do tworzenia strony informacyjnej. Na zakończenie rozdziału skupimy się na opisaniu innych API, które są wykorzystywane przez programistów JSP i XML. Związek pomiędzy XML-em i JSP Wspólne wykorzystywanie JSP i XML-a ma sporo sensu. JSP służy do tworzenia wyj- ścia znakowego, a XML do opisywania danych znakowych; razem tworzą naturalne połączenie. Poznanie samego XML-a nie wystarczy, ponieważ XML ma na celu zna- kowanie danych, a nie ich przenoszenie. JSP pozwala przenosić dane do i ze źródła danych XML. W celu skutecznego wykorzystania XML-a w projekcie musimy poznać metody pobierania i umieszczania danych znakowych za pomocą JSP. Poniżej wymie- niamy kilka często stosowanych metod wspólnego wykorzystania JSP i XML:   Dane są przechowywane w pliku XML. Za pomocą JSP dane są importowane i konwertowane na stronę HTML w celu wyświetlenia w przeglądarce. Dane są przechowywane w bazie danych. Tworzony jest proces Java w celu odczytania danych z bazy danych i zamianę ich na dokument XML. Następnie dane są albo przesyłane do użytkownika jako plik XML, bądź plik XML jest przekształcany na inny format, taki jak strona HTML, do przeglądania przez użytkownika. 2 Część II ♦ Integracja JSP i XML-a    Dane są przechowywane w pliku XML. Plik jest przetwarzany za pomocą Javy, a dane są formatowane i umieszczane w bazie danych. Za pomocą JSP uzyskuje się dostęp do bazy danych i wyświetla dane. Dane inicjalizacyjne aplikacji WWW są przechowywane w pliku XML. Plik jest odczytywany za pomocą JSP, a zachowanie aplikacji jest zmieniane w zależności od zawartości pliku. Dane są przenoszone między dwoma systemami w pliku XML. Technologia JSP jest wykorzystywana jako interfejs użytkownika w celu inicjacji procesu przesyłania albo pobierania danych. Te przykłady wskazują, że dane są pobierane, zapisywane i konwertowane do różnych formatów. Trzeba nauczyć się wykorzystywać JSP jako warstwę pośrednią w celu ułatwienia przenoszenia danych używających XML albo innych formatów. Ostrzeżenie Nadszedł właściwy moment na ostrzeżenie związane z wykorzystywaniem XML-a. XML to wspaniała technologia i można za jej pomocą robić zdumiewające rzeczy. Jednakże chcemy zauważyć, że nie jest to jedyne i właściwe rozwiązanie dla wszystkich pro- blemów. Odpowiednie wykorzystanie XML-a pozwoli zwiększyć wydajność i oszczędzić czas. Złe użycie XML spowoduje spowolnienie działania aplikacji WWW, zmarno- wanie czasu i pieniędzy przeznaczonych na rozwój projektu. Systemy raportowania są zwykle dobrym miejscem na wykorzystanie XML-a i XSL-a z powodu możliwości filtrowania i formatowania, które można zastosować na tych samych zbiorach danych do utworzenia różnych raportów. Przykłady tego można znaleźć w rozdziale 11., „Wykorzystanie XML-a w systemach raportowania”, oraz w rozdziale 12., „Zaawansowany XML w systemach raportowania”. Można także użyć danych zapisanych w postaci XML na stronie WWW, umożliwiając klientom reorganizację danych w raportach bez potrzeby ponownego łączenia się z serwerem. Przykłady tego można znaleźć w rozdziale 13., „Rozważania o przeglądarce współ- pracującej z XML-em”. Ponadto XML dodaje warstwę abstrakcji pomiędzy algorytmami biznesowymi i algo- rytmami prezentacji. Oznacza to, że zmiana wyglądu raportu wymaga jedynie aktu- alizacji arkusza stylów XSL, podczas gdy poziom generacji danych pozostaje nie- zmieniony. Podobnie, jeżeli zmienią się obiekty biznesowe tworzące raport, mogą one wciąż generować ten sam kod XML, dzięki czemu warstwa prezentacji będzie wciąż działać poprawnie. Tak więc warstwa XML jest jak gumowa uszczelka, która zapewnia sprawne działanie aplikacji WWW. Jak powiedziano wcześniej w tej książce, format XML nie został zaprojektowany jako alternatywa dla baz danych. Chociaż pliki XML mogą być używane do przechowywania danych, najlepiej je wykorzystywać jako pliki inicjalizacyjne albo małe zbiory danych. Wykorzystanie XML-a do przechowywania i odczytywania dużych ilości danych jest metodą wolniejszą niż używanie bazy danych. Bazy danych udostępniają dodatkowe możliwości, takie jak zarządzanie transakcjami, które nie są częścią specyfikacji XML. Podczas projektowania dużych systemów wykorzystujących XML, powinieneś Rozdział 4. ♦ Szybkie wprowadzenie do JSP i XML 3 dopasować projekt do mocnych i słabych stron XML-a. XML nie zastępuje baz danych, a raczej je uzupełnia. Projekty systemów powinny zakładać użycie obu tych techno- logii w zależności od potrzeb. W dalszych rozdziałach zademonstrujemy połączenie obu technologii. Zdarzają się przypadki, kiedy wykorzystanie XML-a do przechowywania danych może być dobrym wyborem. Mógłbyś przykładowo chcieć umożliwić wielu klientom prze- glądanie niezmienionych danych bez potrzeby połączenia z bazą danych bądź z siecią. Można by względnie szybko stworzyć bardzo prosty system, który wykorzystywał będzie przeglądarkę, XML i kilka arkuszy stylów do osiągnięcia pożądanego celu. Czasami w projektach dane są zamieniane na format XML tylko po to, aby używać XML-a. Jest to złe podejście, ponieważ proces tworzenia i używania dokumentów XML dodaje kolejną warstwę przetwarzania do projektu. To zarówno zwiększa koszt z powodu dłuższego czasu rozwoju systemu, jak i spowalnia przetwarzanie. Dane powinny być zamieniane na XML tylko wtedy, kiedy wykorzystanie XML-a jest najlepszym roz- wiązaniem. Podstawowa zasada brzmi: nigdy nie przekształcaj danych do postaci XML, jeżeli nie ma to określonego celu. Nie używaj technologii XML dla niej samej. JAXP, Xerces i Xalan Istnieje wiele narzędzi do przetwarzania i przekształcania XML-a. Każde z nich ma swoje zalety i wady. Jednakże trzeba od czegoś zacząć, omówimy więc API, które są najczęściej używane z JSP. Przełoży się to na napisanie przykładu używającego API JAXP. API JAXP używa parsera Javy Xerces i procesora arkuszy stylów Xalan. Jeżeli jeszcze nie umieściłeś plików xerces.jar i xalan.jar w katalogu lib serwera Tomcat, zrób to teraz. Lokalizacja plików do skopiowania podana jest poniżej. Xerces (parser XML) Mówiąc prosto, Xerces jest parserem i generatorem XML. Jego nazwa nawiązuje do motyla Xerces Blue. Parser implementuje specyfikacje W3C XML i DOM (poziomy 1. i 2.), oraz standard SAX. Xerces jest dołączany do Tomcata, dlatego nie musisz go instalować. Być może jed- nak za pewien czas będziesz potrzebował najnowszej wersji z powodu nowych moż- liwości. Użyj następującego URL-a, aby skopiować najnowszą wersję Xercesa: http:/ /xml.apache.org/xerces2-j/index.html. DOM i SAX to różne metody przetwarzania XML, które będą omówione w rozdziale 5., „Używanie DOM”, i rozdziale 6., „Programowanie SAX”. Mówiąc krótko, DOM tworzy w pamięci drzewiastą strukturę, którą można programowo manipulować. SAX jest sekwencyjnym, sterowanym zdarzeniami czytnikiem XML. W tej książce używamy Xercesa w wersji 1.4.3. 4 Część II ♦ Integracja JSP i XML-a Xalan (procesor XSLT) Xalan jest procesorem arkuszy stylów XSLT. Jego nazwa nawiązuje do rzadkiego instru- mentu muzycznego. Xalan implementuje specyfikację W3C XSLT i instrukcje XPath. Niestety Xalan nie jest dołączany do Tomcata, dlatego trzeba go zainstalować. Skopiuj Xalana z http://xml.apache.org/xalan-j/index.html. Umieść plik xalan.jar w katalogu lib serwera Tomcat. Zatrzymaj i uruchom ponownie serwer w celu zarejestrowania nowych klas. W tej książce używamy Xalana w wersji 2.2.d10. JAXP (podstawowe przetwarzanie XML) Technicznie JAXP to API dla przetwarzania XML. Dokładniej mówiąc, jest to warstwa abstrakcji, ponieważ nie zawiera żadnej funkcjonalności przetwarzania. JAXP jest poje- dynczym API, przez które można uzyskać dostęp do różnych obsługiwanych procesorów XML i XSL. Jest to podobne do JDBC dla parserów XML. JAXP nie dodaje żadnej nowej funkcjonalności do przetwarzania XML, umożliwia jedynie standardowy spo- sób wykorzystania różnych implementacji procesorów XML. Poprzez JAXP można uży- wać różnych implementacji standardowych procesorów XML, takich jak SAX i DOM. Aby skutecznie wykorzystywać JAXP ważne jest, aby używać tylko jego API i unikać bezpośredniego użycia jakichkolwiek podrzędnych API zależnych od implementacji. Przyczyną tego faktu jest to, że warstwa JAXP jest warstwą abstrakcji. Jakiekolwiek bezpośrednie wywołania podrzędnych API XML zaprzeczają idei posiadania warstwy podstawowej. Ta zasada jest szczególnie istotna, kiedy aplikacja ma być wdrożona w różnych sytuacjach, a w każdym wdrożeniu zostanie wykorzystany inny procesor XML. JAXP zapewnia aplikacji niezależność od implementacji procesora XML. JAXP został stworzony w celu ułatwienia wykorzystania XML-a na platformie Javy. Osiągnięto to dzięki wspólnemu interfejsowi do dowolnie wybranego procesora XML. JAXP jest zawarty w serwerze Tomcat i nie wymaga żadnej instalacji. Jeżeli chcesz przejrzeć źródło JAXP albo sprawdzić szczegóły dotyczące najnowszej wersji, odwiedź stronę http://java.sun.com/xml/jaxp.html. W tej książce używamy JAXP w wersji 1.1. Przykład z wykorzystaniem JAXP, XSL-a i XML-a Ten przykład symuluje losowe generowanie bannerów, które można spotkać w całej sieci WWW. Istotne jest, że ta wersja jest ograniczona do wyświetlania tylko tekstu. W rozdziale 1., „Integracja JSP i danych”, utworzyliśmy podobny przykład używają- cy różnych metod. Dane dla tej wersji będą przechowane w statycznym pliku XML. Za pomocą JAXP zastosujemy arkusz stylów XSL do dokumentu XML i wyślemy wyniki na wyjście. Na początek przykład będzie służył do wyświetlenia wszystkich danych znajdujących się w pliku XML. Następnie zmodyfikujemy kod, aby wybierał losowo łącze do wyświetlenia. Rozdział 4. ♦ Szybkie wprowadzenie do JSP i XML 5 Zacznijmy od pliku danych XML, pokazanego na wydruku 4.1. Ten i pozostałe pliki w tym rozdziale powinny zostać zapisane w katalogu webapps serwera Tomcat w ścieżce dostępu webapps/xmlbook/chapter4/BannerAds.xml. Wydruk 4.1. BannerAds.xml; plik danych XML dla przykładu JAXP !ZONXGTUKQP! $#00 45 $#00 4# 0#/ ,52+PUKFGT0#/ .+0- JVVRYYYLURKPUKFGTEQO.+0- .+0-6 :6 ,520GYU.+0-6 :6 $#00 4# $#00 4# 0#/ 5WP0#/ .+0- JVVRYYYUWPEQO.+0- .+0-6 :6 9KVT[PC,CXC.+0-6 :6 $#00 4# $#00 4# 0#/ *GNKQP0#/ .+0- JVVRYYYJGNKQPRN.+0- .+0-6 :6 9[FCYPKEVYQ*GNKQP.+0-6 :6 $#00 4# $#00 4# 0#/ ,CMCTVC0#/ .+0- JVVRLCMCTVCCRCEJGQTI.+0- .+0-6 :6 -GYN6QQNU.+0-6 :6 $#00 4# $#00 45 Zauważ, że w tym pliku znajdują się cztery grupy danych, z których każda zawiera informację o łączu bannera. Każda grupa danych jest właściwie zagnieżdżona w ele- mencie głównym $#00 45. Następnie musimy utworzyć arkusz stylów XSL, pokazany na wydruku 4.2, w celu zastosowania formatowania do pliku XML. Mówiąc w skrócie, ten arkusz stylów utworzy wiersz tabeli dla każdego elementu dziecka $#00 4# znajdującego się wewnątrz ele- mentu głównego $#00 45. Potem dane tekstowe znajdujące się w różnych węzłach zostaną wybrane i umieszczone w komórkach tabeli. Wydruk 4.2. BannerAds.xsl; arkusz stylów XSL dla przykładu JAXP !ZONXGTUKQPGPEQFKPI+51! ZUNUV[NGUJGGVXGTUKQPZONPUZUNJVVRYYYYQTI:5.6TCPUHQTO ZUNVGORNCVGOCVEJ *6/. * # 6+6. $CPPGT[,#:26+6. * # $1 ; 6#$. DQTFGT 64 6* 0CYC6* 6* ĐæEG6* 6* 6GMUVđæEC6* 64 6 Część II ♦ Integracja JSP i XML-a ZUNHQTGCEJUGNGEV$#00 45$#00 4#  64 6 ZUNXCNWGQHUGNGEV0#/  6 6 ZUNXCNWGQHUGNGEV.+0- 6 6 ZUNXCNWGQHUGNGEV.+0-6 :6 6 64 ZUNHQTGCEJ 6#$. $1 ; *6/. ZUNVGORNCVG ZUNUV[NGUJGGV Instrukcja XPath UGNGEV wybiera wszystkie dzieci $#00 4# elementu głównego $#00 45. ZUNHQTGCEJUGNGEV$#00 45$#00 4#  Spowoduje to przetwarzanie ciała elementu HQTGCEJ dla każdego elementu wybranego przez wyrażenie UGNGEV. Nadszedł czas, aby utworzyć stronę JSP, która używa JAXP w celu zastosowania prze- kształcania arkusza stylów do pliku XML. Kod jest pokazany na wydruku 4.3. Wydruk 4.3. BannerAds_JAXP.jsp; JSP dla przykładu JAXP  RCIG KORQTVLCXCZZONVTCPUHQTO  LCXCZZONVTCPUHQTOUVTGCO  LCXCKQ    5VTKPINUARCVJTGSWGUVIGV5GTXNGV2CVJ  NUARCVJNUARCVJUWDUVTKPI NUARCVJKPFGZ1H $CPPGT#FUA,#:2LUR  5VTKPINUAZONCRRNKECVKQPIGV4GCN2CVJ NUARCVJ $CPPGT#FUZON  5VTKPINUAZUNCRRNKECVKQPIGV4GCN2CVJ NUARCVJ $CPPGT#FUZUN  5VTGCO5QWTEGZONPGY5VTGCO5QWTEG PGY(KNG NUAZON  5VTGCO5QWTEGZUNPGY5VTGCO5QWTEG PGY(KNG NUAZUN  5VTGCO4GUWNVTGUWNVPGY5VTGCO4GUWNV QWV  6TCPUHQTOGT(CEVQT[V(CEVQT[6TCPUHQTOGT(CEVQT[PGY+PUVCPEG  6TCPUHQTOGTVTCPUHQTOGTV(CEVQT[PGY6TCPUHQTOGT ZUN  VTCPUHQTOGTVTCPUHQTO ZONTGUWNV   Na początku strony zadeklarowane są pakiety używane w kodzie. Pierwszy pakiet, LCXCZZONVTCPUHQTO , zawiera klasy 6TCPUHQTOGT i 6TCPUHQTOGT(CEVQT[. Te klasy przekształcają drzewo źródłowe, XML i XSL, w drzewo wynikowe. W następnym zade- klarowanym pakiecie, a mianowicie LCXCZZONVTCPHQTOUVTGCO , znajdują się klasy 5VTGCO4GUWNV i 5VTGCO5QWTEG. 5VTGCO5QWTEG to obsługiwane źródło XML. Nie czyni żadnej różnicy, czy jest to plik czytany w strumieniu danych albo istniejąca reprezenta- cja danych XML. 5VTGCO5QWTEG zajmuje się za nas tymi szczegółami. 5VTGCO4GUWNV Rozdział 4. ♦ Szybkie wprowadzenie do JSP i XML 7 określa, gdzie chcemy wysłać wynikowy dokument XML. Te klasy służą jako schowki dla plików XML i XSL przed przekształceniem i dla końcowego wyjścia po przetwa- rzaniu. Na końcu znajduje się pakiet LCXCKQ , który obsługuje zarządzanie plikami zewnętrznymi. Następnie JSP odczytuje własną ścieżkę dostępu. Sprawdzamy ścieżkę dostępu w celu upewnienia się, że używamy właściwej ścieżki podczas pobierania plików XML i XSL. Kiedy już mamy określoną ścieżkę dostępu, używamy jej do umieszczenia plików XML i XSL w obiektach 5VTGCO5QWTEG, które służą jako schowki. Dalej tworzony jest obiekt 5VTGCO4GUWNV w celu przesłania wyników przekształcenia. W tym przykładzie wyniki są przesyłane bezpośrednio do wyjścia JSP, czyli obiektu niejawnego QWV typu LCXCZ UGTXNGVLUR,UR9TKVGT. Wszystko, co do tej pory zrobiliśmy, miało na celu przygotowanie do uruchomienia przekształcenia XML/XSLT. Następnie tworzony jest egzemplarz obiektu 6TCPUHQTOGT (CEVQT[. Fabryki (ang. factories) są używane do tworzenia określonych przekształceń. Fabryka ustawia wszystkie nadające się do ponownego wykorzystania informacje, których proces XML będzie później potrzebował podczas wykonywania rzeczywistego przekształcenia XSL danych XML. Używamy 6TCPUHQTOGT(CEVQT[ do utworzenia okre- ślonego obiektu 6TCPUHQTOGT. Każdy utworzony 6TCPUHQTOGT obsługuje pojedynczy plik XSL. Gdybyśmy musieli przetworzyć pięć różnych plików XSL, utworzylibyśmy pięć egzemplarzy tego obiektu albo inicjalizowalibyśmy pojedynczy 6TCPUHQTOGT pięć razy. Tak więc podczas tworzenia obiektu 6TCPUHQTOGT określamy, którego pliku XSL ma on używać. Następnie wywołujemy metodę przekształcającą w celu przetworzenia doku- mentu XML. Wymaga to wiedzy, który plik XML ma być przetwarzany (który obiekt 5VTGCO5QWTEG) oraz dokąd przesłać wyjście (5VTGCO4GUWNV). Całe przekształcenie obejmuje tylko kilka linii kodu JAXP. Wyniki pokazano na rysunku 4.1. Rysunek 4.1. Wyniki przekształcenia JAXP Możliwość wyświetlenia wyników przekształcenia XSLT jest sama w sobie potężna, ale rozszerzymy ten przykład o dodatkową funkcjonalność. Rzeczywisty system obsługi bannerów wyświetlałby tylko jeden losowo wybrany banner. Zmodyfikujemy nasz przykład, aby działał podobnie. Przykład z parametrami XSL Zaczniemy od dodania znacznika parametru do arkusza stylów XSL. Znacznik ten utworzy parametr, który poinformuje arkusz stylów, który banner ma zostać wyświe- tlony. Wartość tego parametru będzie ustawiana przez stronę JSP (a dokładnie przez JAXP). Na wydruku 4.4 pokazano nowy arkusz stylów ze zmianami zaznaczonymi drukiem wytłuszczonym. 8 Część II ♦ Integracja JSP i XML-a Wydruk 4.4. BannerAds_Param.xsl; parametr ustawiany zewnętrznie !ZONXGTUKQPGPEQFKPI+51! ZUNUV[NGUJGGVXGTUKQPZONPUZUNJVVRYYYYQTI:5.6TCPUHQTO ZUNRCTCOPCOG JQQUG ZUNVGORNCVGOCVEJ *6/. * # 6+6. $CPPGT[RCTCOGVTGO6+6. * # $1 ; 6#$. DQTFGT 64 6* 0CYC6* 6* ĐæEG6* 6* 6GMUVđæEC6* 64 ZUNHQTGCEJUGNGEV$#00 45$#00 4# = JQQUG? 64 6 ZUNXCNWGQHUGNGEV0#/  6 6 ZUNXCNWGQHUGNGEV.+0- 6 6 ZUNXCNWGQHUGNGEV.+0-6 :6 6 64 ZUNHQTGCEJ 6#$. $1 ; *6/. ZUNVGORNCVG ZUNUV[NGUJGGV Wewnątrz elementu UV[NGUJGGV dodaliśmy element parametru o nazwie JQQUG. ZUNRCTCOPCOG JQQUG Ten element parametru ma globalny zakres dla całego arkusza stylów, ponieważ został umieszczony na zewnątrz znacznika ZUNVGORNCVG. Zwykle podczas deklaracji para- metru ustawiana jest również jego domyślna wartość za pomocą atrybutu UGNGEV. Wybraliśmy możliwość nieustawiania wartości domyślnej; gdybyśmy jednak ją usta- wili, wyglądałoby to w ten sposób: ZUNRCTCOPCOG JQQUGUGNGEV Innym miejscem, w którym można zadeklarować parametry, jest początek szablonu. W takim przypadku zakres parametru jest ograniczony do szablonu, w którym para- metr został zadeklarowany. Następna zmieniona część oryginalnego arkusza stylów z wydruku 4.2 to instrukcja UGNGEV pętli HQTGCEJ. ZUNHQTGCEJUGNGEV$#00 45$#00 4# = JQQUG? Instrukcja XPath UGNGEV znów wybierze wszystkie elementy dzieci $#00 4# elementu głównego $#00 45. Jednakże teraz tylko te elementy $#00 4# , których numer pozycji równa się parametrowi w nawiasach kwadratowych, zostaną wybrane do przetworzenia w pętli HQTGCEJ. W rezultacie zostanie wybrana tylko jedna ze wszystkich możli- wych opcji, która będzie umieszczona na wyjściu przez kod zawarty w tej pętli. Rozdział 4. ♦ Szybkie wprowadzenie do JSP i XML 9 Aby odwołać się do parametru w dowolnym miejscu w jego zakresie, użyj znaku dolara () przed nazwą parametru. Na koniec mamy nowy dokument JSP, pokazany na wydruku 4.5. Ta strona zawiera oryginalny kod z wydruku 4.3 z pewnym dodatkowym przetwarzaniem. Musimy teraz dowiedzieć się, ile bannerów znajduje się w pliku XML, a następnie losowo wybrać liczbę z tego zakresu. Po wybraniu tej liczby umieszczamy parametr w arkuszu stylów XSL, tak więc tylko te dane zostaną wyświetlone. Wydruk 4.5. BannerAds_Param.jsp; elementy i parametry XSL  RCIG KORQTVLCXCZZONVTCPUHQTO  LCXCZZONVTCPUHQTOUVTGCO  LCXCKQ  LCXCZZONRCTUGTU  QTIYEFQO    5VTKPINUARCVJTGSWGUVIGV5GTXNGV2CVJ  NUARCVJNUARCVJUWDUVTKPI NUARCVJKPFGZ1H $CPPGT#FUA2CTCOLUR  5VTKPINUAZONCRRNKECVKQPIGV4GCN2CVJ NUARCVJ $CPPGT#FUZON  5VTKPINUAZUNCRRNKECVKQPIGV4GCN2CVJ NUARCVJ $CPPGT#FUA2CTCOZUN  QEWOGPV$WKNFGT(CEVQT[HCEVQT[ QEWOGPV$WKNFGT(CEVQT[PGY+PUVCPEG  HCEVQT[UGV8CNKFCVKPI HCNUG  QEWOGPV$WKNFGTDWKNFGTHCEVQT[PGY QEWOGPV$WKNFGT  QEWOGPVFQEDWKNFGTRCTUG PGY(KNG NUAZON  0QFG.KUVPQFGUFQEIGV NGOGPVU$[6CI0COG $#00 4#   KPVKPV0QFG.GPIVJPQFGUIGV.GPIVJ  KPVKPV4CPFQO  KPV  /CVJTCPFQO  KPV0QFG.GPIVJ  5VTGCO5QWTEGZONPGY5VTGCO5QWTEG PGY(KNG NUAZON  5VTGCO5QWTEGZUNPGY5VTGCO5QWTEG PGY(KNG NUAZUN  5VTGCO4GUWNVTGUWNVPGY5VTGCO4GUWNV QWV  6TCPUHQTOGT(CEVQT[V(CEVQT[6TCPUHQTOGT(CEVQT[PGY+PUVCPEG  6TCPUHQTOGTVTCPUHQTOGTV(CEVQT[PGY6TCPUHQTOGT ZUN  VTCPUHQTOGTUGV2CTCOGVGT  JQQUGPGY+PVGIGT KPV4CPFQO  VTCPUHQTOGTVTCPUHQTO ZONTGUWNV   Na nowej stronie JSP dodaliśmy dwa pakiety. Pierwszy dodany pakiet LCXCZZON RCTUGTU daje nam dostęp do implementacji JAXP DOM i pozwala na utworzenie w pamięci drzewiastej struktury dokumentu XML za pomocą klas QEWOGPV$WKNFGT 10 Część II ♦ Integracja JSP i XML-a i QEWOGPV. Kolejny pakiet to QTIYEFQO . Za pomocą tego pakietu mamy dostęp do definicji DOM W3C. Dzięki temu możemy utworzyć zbiór wybranych węzłów, używając obiektu 0QFGU.KUV. Następnie tworzymy egzemplarz obiektu QEWOGPV$WKNFGT(CEVQT[. Po utworzeniu obiekt ten zostanie wykorzystany do utworzenia obiektu QEWOGPV, za pocą którego przetwo- rzymy plik XML. Popatrz na linię: HCEVQT[UGV8CNKFCVKPI HCNUG  Ta linia jest ważna, ponieważ określa, czy prawidłowość strukturalna pliku XML jest sprawdzana podczas ładowania, czy też nie. Ponieważ ten plik nie ma DTD albo schematu, wyłączamy sprawdzanie dokumentu. Krótko mówiąc, sprawdzanie prawidłowości struktury oznacza, że porównujemy strukturę dokumentu XML z definicją tej struktury. Jeżeli się zgadzają, dokument jest poprawny pod względem strukturalnym. Po załadowaniu pliku XML do obiektu QEWOGPV jesteśmy gotowi do obliczenia, ile danych o bannerach znajduje się w pliku XML: 0QFG.KUVPQFGUFQEIGV NGOGPVU$[6CI0COG $#00 4#   KPVKPV0QFG.GPIVJPQFGUIGV.GPIVJ  Patrząc na plik XML pokazany na wydruku 4.1, widzimy, że każdy element $#00 4# zawiera informację o jednym bannerze. Tworzymy 0QFG.KUV i wybieramy tylko ele- menty o nazwie $#00 4# . 0QFG.KUV zawiera teraz pojedynczy węzeł dla każdego ban- nera. Użycie IGV.GPIVJ na tej liście zwraca całkowitą liczbę bannerów. W tej chwili chcielibyśmy wspomnieć, że liczenie elementów-dzieci jest złym pomy- słem przy przetwarzaniu wielkich ilości danych. Działa to dobrze dla używanych przez nas dokumentów XML, ponieważ są one małe. Jednak podczas pracy z obszernymi dokumentami XML załadowanie całego dokumentu do pamięci jedynie w celu poli- czenia elementów zakończyłoby się ogromnym spadkiem wydajności przetwarzania. Teraz możemy użyć metody TCPFQO oraz liczby bannerów jako czynnika skalującego w celu otrzymania liczby losowej: KPVKPV4CPFQO  KPV  /CVJTCPFQO  KPV0QFG.GPIVJ  Następnie ustawiany jest parametr w arkuszu stylów: VTCPUHQTOGTUGV2CTCOGVGT  JQQUGPGY+PVGIGT KPV4CPFQO  Ustawiamy parametr o nazwie JQQUG w arkuszu stylów XSL o wartości równej otrzy- manej liczbie losowej. To ta liczba określi, który banner ma być wyświetlony. To jest dopiero początek. Za pomocą podobnych technik moglibyśmy określić, które dane użytkownik ogląda, wykorzystując login użytkownika. Można też przekazywać parametry w celu zmiany sposobu formatowania raportu przez arkusz stylów XSL albo dynamicznej zmiany kolejności sortowania. Później, kiedy wkroczymy do królestwa tworzenia dokumentów XML opartych na danych pobieranych z bazy danych, nauczysz się, jak implementować te opcje. Rozdział 4. ♦ Szybkie wprowadzenie do JSP i XML 11 Na rysunku 4.2 pokazano dane wyjściowe utworzone przez JSP. Są one oczywiście losowe, więc nie zobaczysz tej samej strony przy każdym wykonaniu kodu JSP. Rysunek 4.2. Losowo wybrany banner Przesyłanie przekształcenia do pliku JSP Czasami przetwarzanie plików XML i XSL jest nadmiarowe, ponieważ te same dane wyjściowe są tworzone wielokrotnie. Przykładem tego jest biuletyn. Załóżmy, że jest strona WWW, która wyświetla biuletyn. Zawartość tego biuletynu, znajdująca się w pliku XML, zmienia się raz w tygodniu, ale przez resztę czasu pozostaje ona niezmieniona. W tym przypadku byłoby marnotrawieniem mocy przetwarzania przekształcanie doku- mentu XML za pomocą arkusza stylów XSL za każdym razem, kiedy użytkownik zażąda strony. Zamiast tego powinniśmy przesłać wyniki przekształcenia do innego pliku JSP i nakazać użytkownikowi pobranie uprzednio przetworzonej strony. W ten sposób możemy utworzyć przekształcenie, które będzie wykorzystywane tylko przy zmianie źródłowego pliku XML przez wywołanie strony przetwarzającej. Popatrzmy teraz na stronę JSP, która przetwarza pliki XML i XSL i umieszcza wyniki na innej stronie JSP. Strona przetwarzająca nazywa się CreateNewsLetter.jsp, a wyniki są umieszczane na NewsLetter.jsp. Ten przykład jest luźno oparty na biuletynie JSPBuzz, który jest opublikowany na witrynie WWW JSP Insider. Schemat przetwarzania jest pokazany na rysunku 4.3. Rysunek 4.3. Tworzenie nowego pliku z danych wyjściowych Kroki pokazane na rysunku 4.3 są następujące: 1. CreateNewsLetter.jsp wczytuje dokument XSL. 2. CreateNewsLetter.jsp wczytuje dokument XML. 3. XML i XSL są przekształcane do postaci wynikowej. 4. Wynik przekształcenia jest umieszczany w NewsLetter.jsp. Kod tworzy biuletyn ze źródła danych XML i arkusza stylów XSL. Biuletyn zawiera artykuły i łącza na temat Javy i XML-a. Umieścimy wyniki przetwarzania JSP w innym pliku JSP, tak więc przekształcanie nie będzie wielokrotnie wywoływane i niepotrzebnie wykonywane. Dzięki temu łącza na stronie WWW mogą wskazywać plik wyjściowy zamiast pliku przetwarzającego. 12 Część II ♦ Integracja JSP i XML-a Zaczniemy od nowego pliku XML znajdującego się na wydruku 4.6. Ten plik XML zawiera informacje o nagłówku i zawartości biuletynu. Zapisz ten plik jako webapps/ xmlbook/chapter4/NewsLetter.xml. Wydruk 4.6. NewsLetter.xml; dane dla przykładu biuletynu !ZONXGTUKQPGPEQFKPI+51! PGYUNGVVGTXQNWOG++KUUWG JGCFGT VKVNG 2T[MđCFQY[DKWNGV[PVKVNG FGUETKRVKQP GOQPUVTCELCRTGUđCPKCY[LħEKCRTGMUVCđEGPKC:/.:5. FQRNKMW,52FGUETKRVKQP FCVG FCVG JGCFGT CTVKENGRQUKVKQP CWVJQT GPPKU/5QUPQUMKCWVJQT VKVNG :/.Y,CXC/QFGNGFQMWOGPVWEúħè9[FCLPQħèVKVNG FGUETKRVKQP 0KGDúFPCNGMVWTCFNCMCľFGIQMVQWľ[YC,CXCK:/.,GUVVQ CTÎYPQRTGINæFDKGľæE[EJRCTUGTÎY:/.LCMKRQTÎYPCPKGY[PKMÎY Y[FCLPQħEKĦYKGVP[CTV[MWđFGUETKRVKQP NKPM JVVRYYYKDOEQOFGXGNQRGTYQTMUZONNKDTCT[ ZKPLCXCKPFGZJVONNKPM FCVG 9TGUKGēFCVG CTVKENG CTVKENGRQUKVKQP CWVJQT /CTUJCNN.CODCWVJQT VKVNG )GPGTCELCF[PCOKEPGIQ:/.CRQOQEæVGEJPQNQIKK,CXC5GTXGT2CIGU VKVNG FGUETKRVKQP QDT[CTV[MWđQRKUWLæE[Y[MQT[UVCPKG,52FQVYQTGPKC F[PCOKEPGLCYCTVQħEKWľ[EKGO:/.FGUETKRVKQP NKPM JVVRYYYKDOEQOFGXGNQRGTYQTMUNKDTCT[LF[PZONJVONNKPM FCVG )TWFKGēFCVG CTVKENG NKPMURQUKVKQP VKVNG 9KVT[PC6QOECVVKVNG NKPM JVVRLCMCTVCCRCEJGQTIVQOECVKPFGZJVONNKPM NKPMU NKPMURQUKVKQP VKVNG 9KVT[PC9 :/.VKVNG NKPM JVVRYYYYQTI:/.NKPM NKPMU NKPMURQUKVKQP VKVNG 2QFTúEPKM,CXCVKVNG NKPM JVVRLCXCUWPEQOFQEUDQQMUVWVQTKCNNKPM NKPMU PGYUNGVVGT Nast
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

JSP i XML
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ą: