r12-01.doc

(596 KB) Pobierz
Helion









Rozdział 1 ¨ Pierwsze kroki (Nagłówek strony)

Rozdział 12

w oryginale 20

.
WML, ASP, JSP, serwlety i Perl

W tym rozdziale zajmiemy się kilkoma różnymi tematami, między innymi Bezprzewodowym językiem znaczników (WML, Wireless Markup Language), czyli popularną aplikacją XML przeznaczoną do użycia w telefonach komórkowych, PDA i innych prostych urządzeniach elektronicznych obsługujących protokół WAP (Wireless Application Protocol). WML jest językiem prostym, obecnie można się na niego już w wielu miejscach natknąć, a nowe serwery WAP pojawiają się jak grzyby po deszczu. W tym rozdziale dużo uwagi poświęcimy tworzeniu dokumentów WML i oglądaniu ich w przeglądarkach WML (często nazywanych mikroprzeglądarkami).

W tym rozdziale zajmiemy się także użyciem XML w połączeniu z istniejącymi technologiami działającymi po stronie serwera, takimi jak Active Server Pages (ASP), Java Server Pages (JSP), serwlety Javy i Perl. Wiele firm usiłuje teraz zaistnieć na rynku XML/Internet, wobec czego pojawia się mnóstwo oprogramowania – zajrzyj na stronę Microsoftu pod adres http://msdn.microsoft.com/xml/demos/default.asp, gdzie znajdziesz zestawienie. Jedną z popularnych technologii działających po stronie serwera jest Prosty protokół dostępu do obiektów (SOAP, Simple Object Access Protocol). Jest to faktycznie prosty protokół, który umożliwia wymianę komunikatów w środowisku rozproszonym, przy czym komunikaty zapisane są w XML. SOAP często jest używany do wysyłania poleceń w nagłówkach HTTP, gdyż protokoły zdalnego wywołania metod, takie jak DCOM Microsoftu, nie są ani dość proste, ani dość elastyczne, aby można je było zastosować w Internecie. Trzeba zresztą powiedzieć, że Microsoft jest jednym z głównych promotorów SOAP, co może kazać się zastanowić nad przyszłością DCOM. Nad SOAP także intensywnie pracują IBM i Lotus.

Więcej o SOAP

Trudno jest w Internecie znaleźć informacje o SOAP, gdyż w języku angielskim słowo to oznacza po prostu mydło i wśród odpowiedzi większość dotyczyła będzie czystości i telewizyjnych tasiemców („opery mydlane”). Na początek możesz zatem poszukiwania zacząć od następujących adresów:

·         http://msdn.microsoft.com/xml/general/soapspec.asp

·         www.oasis-open.org/cover/soap.html

·         www.develop.com/soap

·         www.develop.com/soap/soapfaq.xml

Tutaj koniec ramki „Wyróżnienie”

W tym rozdziale przyjrzymy się też tworzeniu dokumentów XML po stronie serwera. W tym celu będziemy pobierać dane z pliku bazy danych db.mdb w zwykłym formacie Microsoft Access. Następnie dane będziemy formatować w XML i przesyłać wynikowe dokumenty do komputerów klienckich. Baza danych jest bardzo prosta, zawiera jedynie imiona ośmiorga studentów wraz z ich oceną wyrażoną literą – tabela 12.1.

Tabela 12.1.
Studenci z pliku db.mdb

Student

Ocena

Ann

C

Mark

B

Ed

A

Frank

A

Ted

A

Mabel

B

Ralph

B

Tom

B

Zaczniemy od zastosowania Obiektów danych ActiveX (ADO, ActiveX Data Objects) zainstalowanych na serwerze przeszukujących bazę danych i tworzących dokument XML wyświetlany za pomocą Active Server Pages.

Programowanie po stronie serwera

W pierwszej części tego rozdziału, kiedy opisywać będziemy programowanie od strony serwera, wiele technologii omówionych zostanie bardzo pobieżnie. Niestety nie sposób omówić tutaj wszystkiego, co potrzebne do programowania Active Server Pages, Java Server Pages, serwletów Javy czy Perla. Jeśli potrzebne będą Ci dodatkowe informacje, musisz poszukać ich gdzie indziej. Kiedy w drugiej części tego rozdziału omawiać będziemy WML, tego rodzaju ograniczeń już nie będzie – zaczniemy omawianie wszystkiego od samego początku.

XML i Active Server Pages

Active Server Pages (ASP) to technologia internetowa działająca po stronie serwera zaproponowana przez Microsoft, która umożliwia tworzenie dokumentów w locie. Dokumenty tworzone są na serwerach takich, jak Microsoft Internet Information Server (IIS); w naszym wypadku wyszukamy imiona w bazie db.mdb i zwrócimy je w postaci następującego dokumentu XML:

<?xml version="1.0" encoding="iso-8859-2"?>

<document>

  <student>

    Ann

  </student>

  <student>

    Mark

  </student>

  <student>

    Ed

  </student>

  <student>

    Frank

  </student>

  <student>

    Ted

  </student>

  <student>

    Mabel

  </student>

  <student>

    Ralph

  </student>

  <student>

    Tom

  </student>

</document>

Najważniejsze w przypadku ASP to upewnić się, że kod wygeneruje dokument XML, gdyż domyślnym typem dokumentu jest HTML. Jeśli opis typu zawartości w nagłówku HTTP nie zawiera informacji, że mamy do czynienia z dokumentem XML, przeglądarka dokumentu tego nie potraktuje jako XML (i zapewne potraktuje go jako HTML). Typ zawartości określa się za pomocą instrukcji <% Response.ContentType %> podając typ application/xml:

<% Response.ContentType = "application/xml" %>

  .

  .

  .

Następnie dodajemy deklarację XML oraz element główny, document:

<% Response.ContentType = "application/xml" %>

 

<?xml version="1.0" encoding="iso-8859-2"?>

<document>

  .

  .

  .

Teraz potrzebne nam są imiona studentów z bazy db.mdb. Użyjemy do tego protokołu ADO Microsoftu, gdyż ASP przeznaczony jest do pracy na platformach Windows, takich jak IIS. Utworzymy połączenie ADO oraz użyjemy instrukcji SQL pobierającej zestaw wszystkich rekordów:

<% Response.ContentType = "application/xml" %>

 

<?xml version="1.0" encoding="iso-8859-2"?>

<document>

<%

 

DIM adoConnect

DIM adoRecordset

 

Set adoConnect = Server.CreateObject("ADODB.Connection")

 

adoConnect.open "Provider=Microsoft.Jet.OLEDB.4.0;" _

   & "Data Source=C:\xml\db.mdb"

 

Set adoRecordset = adoConnect.Execute("SELECT * FROM Students")

  .

  .

  .

Teraz pozostało nam już tylko zorganizować pętlę po wszystkich rekordach i utworzyć w każdym przejściu element XML student:

<% Response.ContentType = "application/xml" %>

 

<?xml version="1.0" encoding="iso-8859-2"?>

<document>

<%

 

DIM adoConnect

DIM adoRecordset

 

Set adoConnect = Server.CreateObject("ADODB.Connection")

 

adoConnect.open "Provider=Microsoft.Jet.OLEDB.4.0;" _

   & "Data Source=C:\xml\db.mdb"

 

Set adoRecordset = adoConnect.Execute("SELECT * FROM Students")

 

Do While Not adoRecordset.EOF

  Response.Write "<student>" + adoRecordset("Name") + "</student>"

  adoRecordset.MoveNext

Loop

 

adoRecordset.Close

 

set adoRecordset = Nothing

 

%>

</document>

W ten sposób utworzony zostanie potrzebny nam dokument XML, co pokazano na rysunku 12.1.

Rysunek 12.1.

Tworzenie dokumentu XML za pomocą ASP

Nie mogę wykonać rysunku, gdyż wymaga IIS. Rysunek można zeskanować z książki (dlatego właśnie nie zmieniłem znaczników document na dokument ani nie zmieniałem imion na polskie odpowiedniki.

Rysunek powinien być taki jak poniżej, ale inny powinien być pasek tytułu (jak w książce); to samo dotyczy rysunków 12.2 i 12.3.

Zwróć uwagę na to, że następne rysunki będą bardzo podobne do powyższego; aby zauważyć różnice między nimi, dokładnie przyglądaj się paskom tytułu przeglądarki.

XML i serwlety Javy

Serwlety Javy mają być dla serwerów sieciowych tym, czym są aplety Javy dla komputerów klienckich. Serwletów można użyć do tworzenia dokumentów sieciowych na różnych serwerach. Aby tworzyć serwlety, możesz załadować Java Servlet Development Kit (JSDK) ze strony java.sun.com (w chwili pisania strona główna poświęcona serwletom to http://java.sun.com/products/servlet/index.html) i tworzyć serwlety za pomocą klas z archiwów servlet.jar i server.jar.

Aby odczytać z bazy danych db.mdb imiona studentów, użyjemy pakietu JDBC (Java Database Connectivity) łącząc się z db.mdb po zarejestrowaniu bazy danych jako źródła danych ODBC. Kiedy wyszukamy już imiona studentów, umieścimy je w dokumencie XML i dokument ten odeślemy do klienta.

Znów najważniejsze jest stworzenie dokumentu XML, a nie domyślnego HTML. W przypadku serwletów dokument XML tworzy się za pomocą metody setContentType...

Zgłoś jeśli naruszono regulamin