Aktywne i dynamiczne strony WWW
Transkrypt
Aktywne i dynamiczne strony WWW
Aktywne i dynamiczne strony WWW Elementy projektowania stron WWW Część 3 Formularze HTML Aktywne strony WWW dr inŜ. Tomasz Traczyk Dynamiczne strony WWW 2 Formularze HTML Do czego to słuŜą MoŜliwości • Do tworzenia interaktywnych stron WWW – bez konieczności wykonywania kodu na kliencie Sposób działania • Przeglądarka wysyła URL strony zawierającej formularz • Serwer WWW wysyła stronę z formularzem (statyczną lub dynamiczną) • UŜytkownik wypełnia pola formularza • Atrybut action formularza określa URL pod jaki ma zostać odesłany wynik wypełniania formularza • Po wciśnięciu przycisku submit dane z formularza są wysyłane za pomocą metody – post – dane w treści Ŝądania HTTP (metoda zalecana) – get – dane w URL Ŝądania HTTP (jako parametry) • Rodzaje pól – tekstowe jedno- i wieloliniowe – listy rozwijane i grupy radiowe – pola wyboru (checkboxes) – przyciski ♦ standardowe (submit i reset) ♦ niestandardowe – kod JavaScript • Formatowanie formularza – wszelkie moŜliwości HTML – pola w formularzu są dowolnie wplecione w tekst HTML • Oprogramowanie – w JavaScript – na kliencie – na serwerze (wymaga wysłania) T.Traczyk: WWW, cz. 3 Formularze HTML – przykład <body> <form action="mailto:[email protected]?Pytanie" method="POST"> Wybierz przedmiot z listy <select name="przedmiot"> <option selected>WWW</option> <option>POB</option> </select><p> Wpisz pytanie <textarea name="pytanie" rows="2" cols="50"></textarea><p> Dotyczy <input name="dotyczy" type="radio" value="W" checked>wykładu</input> <input name="dotyczy" type="radio" value="C" >ćwiczeń</input> <p> Pilne? <input name="status" type="checkbox" value="PILNE"/><p> Wpisz swój adres e-mail <input name="nadawca" type="text"/><p> <input type="submit" value="Wyślij"/> <input type="reset" value="Skasuj"/> </form> </body> • Serwer odpowiada na przesłane dane z formularza, odsyłając odpowiednią (dynamiczną) stronę WWW 3 T.Traczyk: WWW, cz. 3 4 T.Traczyk: WWW, cz. 3 Aktywne strony WWW Co to jest? Do czego to powinno słuŜyć? • Strony WWW – statyczne lub dynamiczne – zawierające kody programów wykonywanych na kliencie • Do wykonywania operacji, które nie powinny wymagać odwołania do serwera, np. – podstawowa walidacja wprowadzanych danych – reakcje na przyciśnięcie przycisków • Do tworzenie niezbędnych rozszerzeń funkcjonalnych HTML, np. – przetwarzanie wysp danych – podpowiedzi Technologie • • • • JavaScript (ECMAScritp) Aplety Flash VBScript, ActiveX itp. JavaScript – wprowadzenie Co to jest? Działanie • Skrypty zagnieŜdŜane w kodzie HTML – zwyczajowo skrypty umieszcza się w komentarzu dla zmylenia archaicznych przeglądarek • Skrypty składają się z – kodu wykonywanego bezpośrednio – funkcji • Zdarzenia – predefiniowane – przypisywane przez specjalne atrybuty elementów HTML do kodu ♦ skryptów do bezpośredniego wykonania ♦ wywołań funkcji Do czego to nie powinno słuŜyć? • Do realizacji funkcjonalności osiągalnych za pomocą samego HTML • Do zaśmiecania stron „bajerami” 5 T.Traczyk: WWW, cz. 3 6 function sprawdz(pole) { if (isNaN(pole.value)) { window.alert('Błąd'); pole.focus(); return false }; return true } </script> </head> <body> <form onSubmit="return sprawdz(this.pole)"> Wpisz liczbę <input name="pole" type="text"><p> <input type="button" value="Przycisk" onmouseover="window.status='MoŜna to wcisnąć'" onmouseout="window.status=''" onclick="if (sprawdz(form.pole)) {przycisk()}"/> </form> </body> 7 T.Traczyk: WWW, cz. 3 • Cechy – predefiniowane ♦ ograniczone moŜliwości tworzenia własnych klas (bez dziedziczenia) ♦ moŜna tworzyć nowe wystąpienia niektórych predefiniowanych klas ♦ niektóre obiekty są tworzone automatycznie – mają atrybuty i metody, do których moŜna odwołać się w skryptach • Rodzaje obiektów (wybór) – związane z elementami dokumentu HTML – związane ze środowiskiem przeglądarki, np. navigator, window, history, document – pełniące rolę swoistych bibliotek, np. Date, Math – związane z modelami DOM i SAX – this – obiekt „bieŜący” T.Traczyk: WWW, cz. 3 JavaScript – przykład <head> <script language="JavaScript"> function przycisk() { window.alert('Wciśnięty'); } Obiekty w JavaScript • Język przeznaczony do wykonywania w przeglądarkach WWW – interpretowany przez przeglądarki • Składniowo przypominający język Java, ale znacznie prostszy • Oparty na obiektach (predefiniowanych) Aplety – wprowadzenie Co to takiego? Technologia • Mini-aplikacje w Javie • Działające po stronie klienta – maszyna wirtualna Javy wbudowana w przeglądarkę Zalety • Bardzo duŜe moŜliwości (silny język programowania) • Przenośność • Niezłe bezpieczeństwo – zwykłe aplety nie mają praw „grzebania” na komputerze klienta • Na serwerze umieszcza się skompilowany program apletu (kod przenośny) • Na stronie HTML umieszcza się element APPLET lub OBJECT, np: <APPLET code="aplet.class" codebase="URL" width="300" height="200" alt="Tekst zastępczy"> <PARAM name="nazwa" value="wartość"> ... </APPLET> Wady • Umiarkowana wydajność • ObciąŜenie sieci – konieczność przesłania kodu apletu • Spore obciąŜenie komputera klienta 8 T.Traczyk: WWW, cz. 3 Dynamiczne strony WWW Do czego to słuŜy? Co to jest? • Strony – tworzone dynamicznie przez serwer – na podstawie parametrów i/lub zawartości Ŝądania • Zawartość – zwykle tworzona na bieŜąco – często na podstawie informacji z bazy danych • Nie przechowywane w całości w postaci plików – tworzone w 100% dynamicznie lub – tworzone przez dynamiczne wypełnianie wzorca • Do prezentacji zawsze aktualnej wersji szybko zmiennych informacji, np. – raportowanie aktualnego stanu zasobów, finansów itp. – prezentacja aktualnych analiz handlowych – prezentacja aktualnej oferty z uwzględnieniem bieŜących zapasów magazynowych • Do prowadzenia dynamicznego dialogu z uŜytkownikiem (odpowiedzi na formularze, rozgałęzienia itp.), np. – wyszukiwarki – personalizacja dostępu – składanie zamówień – ankietowanie on-line • Do realizacji duŜych często zmiennych zbiorów informacji, np. – portale – bazy wiedzy, CMS (Content Management Systems) itp. Dynamiczne strony WWW, c.d. Technologie • • • • Trudności CGI Moduły serwerowe Serwlety Server pages Zasady • Separacja logiki od prezentacji – kod programów reprezentujący logikę strony powinien być oddzielony od definicji wyglądu strony ♦ odmienne kwalifikacje projektantów ♦ inna dynamika zmian • Single sign-on – jednorazowa autoryzacja przy dostępie do wielu zasobów o róŜnym pochodzeniu – wymaga pośrednictwa serwera autoryzacyjnego SSO • Częste interakcje z serwerem • Konieczność odświeŜania całej strony po kaŜdej interakcji z serwerem • Nienaturalne sposoby utrzymania sesji – potrzebne ze względu na wymogi ♦ bezpieczeństwa ♦ przetwarzania transakcyjnego – trudne z powodu bezstanowości protokołu HTTP – stosowane sztuczki: przesyłanie generowanych na bieŜąco numerów sesji ♦ w cookies ♦ w kolejnych URL • Ostatnio mocno naduŜywane (PHP...) 9 T.Traczyk: WWW, cz. 3 10 T.Traczyk: WWW, cz. 3 CGI i moduły serwerowe CGI (Common Gateway Interface) Moduły serwerowe • Sposób wywoływania programów na serwerze ze stron WWW – programy w dowolnym języku programowania lub skryptowym (C, C++, shell, Perl, itp.) • Działanie bramki CGI – bramka CGI jest dostępna z URL przez odpowiednią ścieŜkę wirtualną (zwyczajowo /cgi-bin/) – parametry wywołania umieszczane są przez bramkę w zmiennych środowiskowych – program CGI wypisuje swój wynik na standardowe wyjście • Zalety – moŜliwość uŜycia dowolnego języka – prostota interfejsu • Wady – problemy z wydajnością – osobny proces dla kaŜdego Ŝądania – ograniczona przenośność programów 11 • „Przystawki” do serwera WWW – pozwalające wykonywać programy „typu CGI” – ale bez wad związanych z wydajnością „klasycznego” CGI Serwlety Cechy Co to jest? • Program w języku Java – klasa potomna klasy HttpServlet – definiująca metodę doGet lub doPost • Przechowywany – w postaci skompilowanej Przykłady (Apache) • mod_perl – moduł umoŜliwiający pisanie programów typu CGI w języku Perl • mod_php – dynamiczne tworzenie stron WWW w języku PHP T.Traczyk: WWW, cz. 3 – na serwerze aplikacyjnym • Wykonywany – na serwerze aplikacyjnym Połączenie z bazą danych – przez specjalny aparat (motor), np. Tomcat • Interakcja – wywołanie przez Ŝądanie HTTP – odpowiedź HTTP, np. w postaci dokumentu HTML lub XML 12 • Zalety – przenośność (takŜe w formie skompilowanej) – porządny język programowania • Wady – brak oddzielenia prezentacji od logiki – problemy z wydajnością • JDBC – biblioteka Javy – umoŜliwia ♦ połączenie z bazą danych ♦ wysyłanie zapytań SQL ♦ odbieranie wyników T.Traczyk: WWW, cz. 3 Serwlety – przykład import java.io.*; import javax.servlet.*; import javax.servlet.http.*; Server Pages Co to takiego? public class Serwlet extends HttpServlet { public void doGet(HttpServletRequest zadanie, HttpServletResponse odpowiedz) throws ServletException, IOException { odpowiedz.setContentType("text/html"); PrintWriter wyjscie = odpowiedz.getWriter(); wyjscie.println("<TITLE>Pokaz</TITLE>"); wyjscie.println("<H1>Pokaz serwleta</H1>"); ... Dlaczego warto to stosować? • Strony w HTML lub XML zawierające – szablon statycznych części strony – wstawki w języku programowania – zmienne w dynamicznie generowanych miejscach dokumentu • Interpretowane przez serwer – wstawki w języku programowania są wykonywana – zmienne są zastępowane wynikami przetwarzania – wypełniony szablon jest wysyłany do przeglądarki • Stosunkowo łatwe w uŜyciu • Pozwalają w pewnym stopniu oddzielić logikę od prezentacji Technologie (przykłady) • JSP – Java Server Pages • ASP – Application Server Pages (Microsoft, język Basic) } } 13 T.Traczyk: WWW, cz. 3 14 JSP – wprowadzenie Java Server Pages Separacja kodu od prezentacji • Zanurzone w kodzie HTML wstawki w Javie • Kod jest wykonywany przed przesłaniem strony • Realizacja: serwlet – przy pierwszym wywołaniu aparat JSP tworzy serwlet na podstawie strony JSP i kompiluje go – kolejne wywołania od razu uruchamiają serwlet Elementy JSP • • • • Dyrektywy (np. określające Ŝe to jest JSP) Deklaracje zmiennych i metod Scriptlety – kod wykonywalny w Javie WyraŜenia – umoŜliwiają wstawianie wyników przetwarzania do wynikowego dokumentu HTML • Obiekt request słuŜący do odczytywania parametrów wywołania 15 • W prostym uŜyciu JSP nie ma dostatecznej separacji • Lepszą separację umoŜliwia zastosowanie komponentów JavaBeans – kod Java w osobnych plikach – na stronach JSP tylko odwołania do atrybutów JavaBeans • Klasy Javy • Mające – prywatne atrybuty – klasy dostępu do atrybutów (takŜe wirtualnych) o nazwach getAtrybut i setAtrybut T.Traczyk: WWW, cz. 3 JSP – przykłady <HTML> <HEAD> <TITLE>Pokaz JSP</TITLE> </HEAD> <BODY> <%@ page language="java" %> <%! String parametr; %> <% wynik = request.getParameter("parametr"); %> <H1> Oto strona o tytule "<%= wynik %>" </H1> </BODY> </HTML> <HTML> <HEAD> <TITLE>Pokaz JSP</TITLE> </HEAD> <BODY> <%@ page language="java" %> <jsp:useBean id="jb” class="wezParametr"/> <jsp:setProperty name="jb" property="parametr”/> <H1> Oto strona o tytule <jsp:getProperty name="jb" property="wynik"/> </H1> </BODY> </HTML> • Przeznaczone do wielokrotnego wykorzystania w róŜnych aplikacjach Biblioteki znaczników (taglib) • Pozwalają definiować i oprogramować znaczniki realizujące jakieś typowe akcje – np. typowe działania dostępu do bazy danych T.Traczyk: WWW, cz. 3 16 T.Traczyk: WWW, cz. 3 AJAX Wada „klasycznych” stron dynamicznych • Częste interakcje z serwerem są niezbędne np. do – walidacji informacji – bardziej złoŜonych reakcji na działania uŜytkownika • Po kaŜdej interakcji z serwerem – przeładowanie całej strony – wyświetlenie od nowa całej strony • Ogranicza to moŜliwości interakcji Asynchronous JavaScript and XML • Działanie uŜytkownika powoduje – wysłanie Ŝądania do serwera – odpowiedź serwera w XML • Otrzymanie odpowiedzi z serwera powoduje – przyrostową aktualizację strony ♦ przez program na kliencie manipulujący drzewem DOM ♦ na podstawie przesłanego XML – bez przeładowywania całej strony Zalety • Sposób wykorzystania istniejących technologii – XML – technologie stron aktywnych, np. JavaScript – Model DOM ♦ obiektowy model wyświetlanego dokumentu (X)HTML/XML ♦ moŜliwość programowego manipulowania dokumentem 17 Jak działa AJAX? • Znacznie szybsze reakcje na działania uŜytkownika • MoŜliwość tworzenia bardziej złoŜonych interakcji Wady • Dość pokrętna technologia • Nieprzejrzysty kod stron • Złe działanie przycisku „Wstecz” przeglądarki T.Traczyk: WWW, cz. 3