Java Servlet i Java Server Pages

Wielkość: px
Rozpocząć pokaz od strony:

Download "Java Servlet i Java Server Pages"

Transkrypt

1 IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE Java Servlet i Java Server Pages Autor: Marty Hall T³umaczenie: Piotr Rajca ISBN: Tytu³ orygina³u: Core Servlets and JavaServer Pages Format: B5, stron: 530 Niniejsza ksi¹ ka przeznaczona jest dla prawdziwych programistów. Jej celem nie jest przedstawienie potencja³u internetowego handlu ani sposobów, w jaki aplikacje internetowe mog¹ zrewolucjonizowaæ przedsiêbiorstwo. Jest to praktyczna ksi¹ ka przeznaczona dla programistów, którzy ju doskonale rozumiej¹, jak istotne jest tworzenie dynamicznych witryn WWW. Zadaniem niniejszej ksi¹ ki jest przedstawienie poprawnego sposobu prowadzenia takiej pracy. Prezentuj¹c metody tworzenia dynamicznych witryn WWW autor stara³ siê uwzglêdniæ najwa niejsze u ywane techniki i opisaæ najczêœciej napotykane problemy. Jednoczeœnie przedstawiono bardzo du o praktycznych zastosowañ (na przyk³ad ponad sto klas Javy). Podano szczegó³owe przyk³ady dla wszystkich najwa niejszych i najczêœciej wykorzystywanych mo liwoœci, a tak e zamieszczono podsumowania przedstawiaj¹ce równie rzadziej wykorzystywane zastosowania i wskazano dostêpne w Internecie Ÿród³a informacji dotycz¹ce interfejsów programistycznych (API) umo liwiaj¹cych wykorzystanie tych najrzadziej stosowanych mo liwoœci. Nie ma tu wielu pobie nych opisów licznych technologii. Nie by³o zamierzeniem autora, aby niniejsza ksi¹ ka sta³a siê ostatecznym Ÿród³em informacji na wszystkie omawiane w niej tematy. S¹ to zagadnienia bardzo obszerne. Przyk³adowo, istnieje kilka ksi¹ ek o porównywalnej objêtoœci poœwiêconych wy³¹cznie JDBC. Nale y podkreœliæ, e poszczególne zagadnienia zosta³y tutaj przedstawione na tyle szczegó³owo, aby Czytelnik móg³ samodzielnie rozpocz¹æ tworzenie programów nadaj¹cych siê do praktycznego zastosowania. Jedynym warunkiem jest znajomoœæ podstaw jêzyka Java: jego zastosowania i wykorzystywania. W razie braku tych umiejêtnoœci Czytelnik powinien zaznajomiæ siê z zasadami programowania w tym jêzyku. Wydawnictwo Helion ul. Chopina Gliwice tel. (32) helion@helion.pl

2 O Autorze...13 Wprowadzenie...15 Część I Serwlety 2.1 i r Rozdział 1. Podstawowe informacje o serwletach i Java Server Pages...25 Serwlety Zalety serwletów w porównaniu ze zwykłymi programami CGI...27 Efektywność Wygoda Duże możliwości Przenośność Bezpieczeństwo Niewielkie koszty Java Server Pages Zalety JSP W porównaniu z Active Server Pages (ASP) W porównaniu z PHP W porównaniu z serwletami W porównaniu z Server-Side Includes (SSI) W porównaniu z językiem JavaScript W porównaniu ze statycznym kodem HTML Instalacja i konfiguracja Zdobywanie oprogramowania do obsługi serwletów i dokumentów JSP...32 Zapamiętaj adres lub zainstaluj dokumentację Java Servlet oraz JSP API...34 Wskazanie klas używanych przez kompilator Javy...34 Umieszczanie klasy w pakietach Konfiguracja serwera Uruchomienie serwera Kompilacja i instalacja własnych serwletów Rozdział 2. Pierwsze serwlety...41 Podstawowa struktura serwletów Prosty serwlet generujący zwykły tekst Kompilacja i instalacja serwletów Wywoływanie serwletów Serwlety generujące kod HTML

3 4 Java Servlet i Java Server Pages Umieszczanie serwletów w pakietach Tworzenie serwletów należących do konkretnego pakietu...48 Kompilacja serwletów należących do pakietów Wywoływanie serwletów należących do pakietów...50 Proste narzędzia pomocne podczas tworzenia dokumentów HTML...51 Cykl istnienia serwletów Metoda init Metoda service Metody doget, dopost oraz doxxx Interfejs SingleThreadModel Metoda destroy Przykład zastosowania parametrów inicjalizacyjnych Przykład wykorzystania inicjalizacji serwletu i daty modyfikacji strony...62 Testowanie serwletów WebClient: interaktywna wymiana informacji z serwerem WebClient HttpClient NetworkClient SocketUtil CloseableFrame LabeledTextField Interruptible Rozdział 3. Obsługa żądań: dane przesyłane za pomocą formularzy...79 Znaczenie informacji przesyłanych za pomocą formularzy...79 Odczytywanie danych formularzy w serwletach Przykład: odczytanie trzech konkretnych parametrów Przykład: odczytanie wszystkich parametrów Serwis rejestracji życiorysów Filtrowanie łańcuchów w poszukiwaniu znaków specjalnych HTML...97 Implementacja filtrowania Przykład Rozdział 4. Obsługa żądań: nagłówki żądań HTTP Odczytywanie wartości nagłówków żądania w serwletach Wyświetlanie wszystkich nagłówków Nagłówki żądań protokołu HTTP Przesyłanie skompresowanych stron Ograniczanie dostępu do stron Rozdział 5. Dostęp do standardowych zmiennych CGI Odpowiedniki zmiennych CGI dostępne w serwletach Serwlet wyświetlający wartości zmiennych CGI Rozdział 6. Generowanie odpowiedzi: kody statusu Określanie kodów statusu Kody statusu protokołu HTTP 1.1 oraz ich przeznaczenie Interfejs użytkownika obsługujący różne serwisy wyszukujące Rozdział 7. Generowanie odpowiedzi: nagłówki odpowiedzi HTTP Określanie nagłówków odpowiedzi z poziomu serwletów Nagłówki odpowiedzi protokołu HTTP 1.1 oraz ich znaczenie Trwałe przechowywanie stanu serwletu i automatyczne odświeżanie stron Stosowanie trwałych połączeń HTTP Wykorzystanie serwletów do generowania obrazów GIF...168

4 Spis treści 5 Rozdział 8. Obsługa cookies Korzyści płynące ze stosowania cookies Identyfikacja użytkowników podczas trwania sesji na witrynach komercyjnych..177 Unikanie konieczności podawania nazwy użytkownika i hasła Dostosowywanie witryny Dobór reklam Niektóre problemy związane ze stosowaniem cookies Narzędzia obsługi cookies dostępne w serwletach Tworzenie cookies Atrybuty cookies Umieszczanie cookies w nagłówkach odpowiedzi Odczytywanie cookies nadesłanych przez przeglądarkę Przykłady generowania i odczytywania cookies Proste narzędzia do obsługi cookies Odnajdywanie cookie o określonej nazwie Tworzenie cookies o długim czasie istnienia Interfejs wyszukujący z możliwością zapamiętywania ustawień Rozdział 9. Śledzenie sesji Potrzeba śledzenia sesji Cookies Przepisywanie adresów URL Ukryte pola formularzy Śledzenie sesji w serwletach Narzędzia programistyczne do śledzenia sesji Pobieranie obiektu HttpSession skojarzonego z bieżącym żądaniem Pobieranie informacji skojarzonych z sesją Kojarzenie informacji z sesją Kończenie sesji Przepisywanie adresów URL przesyłanych do przeglądarki Serwlet generujący indywidualny licznik odwiedzin dla każdego użytkownika Internetowy sklep wykorzystujący koszyki i śledzenie sesji Tworzenie interfejsu użytkownika Obsługa zamówień To czego nie widać: implementacja koszyka i katalogu produktów Część II Java Server Pages...r Rozdział 10. Elementy skryptowe JSP Elementy skryptowe Tekst szablonu Wyrażenia JSP Predefiniowane zmienne Składnia XML stosowana w wyrażeniach Zastosowanie wyrażeń jako wartości atrybutów Przykład Skryptlety JSP Wykorzystanie skryptletów do warunkowego wykonania fragmentu strony JSP.230 Specjalna składnia skryptletów Deklaracje JSP Specjalna składnia zapisu deklaracji Predefiniowane zmienne

5 6 Java Servlet i Java Server Pages Rozdział 11. Dyrektywa page: strukturalizacja generowanych serwletów Atrybut import Katalogi służące do przechowywania własnych klas Przykład Atrybut contenttype Generowanie zwykłych dokumentów tekstowych Generowanie arkuszy kalkulacyjnych programu Microsoft Excel Atrybut isthreadsafe Atrybut session Atrybut buffer Atrybut autoflush Atrybut extends Atrybut info Atrybut errorpage Atrybut iserrorpage Atrybut language Składnia XML zapisu dyrektyw Rozdział 12. Dołączanie plików i apletów do dokumentów JSP Dołączanie plików w czasie przekształcania strony Dołączanie plików podczas obsługi żądań Dołączanie apletów związanych z Java Plug-In Znacznik akcji jsp:plugin Znaczniki akcji jsp:param oraz jsp:params Znacznik akcji jsp:fallback Przykład: Generowanie tekstu z cieniem Rozdział 13. Wykorzystanie komponentów JavaBeans w dokumentach JSP Podstawowe sposoby użycia komponentów Dostęp do właściwości komponentów Określanie właściwości komponentów prosty przypadek Instalacja klas komponentów Przykład: StringBean Określanie wartości właściwości komponentów Kojarzenie właściwości z parametrami wejściowymi Automatyczna konwersja typów Kojarzenie wszystkich właściwości z parametrami wejściowymi Wspólne wykorzystywanie komponentów Warunkowe tworzenie komponentów Rozdział 14. Tworzenie bibliotek znaczników Elementy tworzące bibliotekę znaczników Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP Definiowanie prostych znaczników Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP Przypisywanie atrybutów znacznikom Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP

6 Spis treści 7 Dołączanie zawartości znacznika Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP Opcjonalne dołączanie zawartości znacznika Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP Manipulowanie zawartością znacznika Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP Wielokrotne dołączanie lub obsługa zawartości znacznika Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP Stosowanie znaczników zagnieżdżonych Klasy obsługi znaczników Plik deskryptora biblioteki znaczników Plik JSP Rozdział 15. Integracja serwletów i dokumentów JSP Przekazywanie żądań Stosowanie zasobów statycznych Przekazywanie informacji do strony docelowej Interpretacja względnych adresów URL przez stronę docelową Inne sposoby pobierania obiektu RequestDispatcher Przykład: internetowe biuro podróży Dołączanie danych statycznych lub dynamicznych Przykład: prezentacja nieprzetworzonych wyników zwracanych przez serwlety lub strony JSP Przekazywanie żądań ze stron JSP Część III Technologie pomocnicze...r Rozdział 16. Formularze HTML Jak przesyłane są dane z formularzy HTML Element FORM Tekstowe elementy kontrolne Pola tekstowe Pola hasła Wielowierszowe pola tekstowe Przyciski Przycisk SUBMIT Przyciski RESET Przyciski JavaScript Pola wyboru i przyciski opcji Pola wyboru Przyciski opcji Listy i listy rozwijane Element kontrolny służący do przesyłania plików Mapy odnośników obsługiwane na serwerze IMAGE standardowe mapy odnośników obsługiwane po stronie serwera ISMAP alternatywny sposób tworzenia map odnośników obsługiwanych po stronie serwera

7 8 Java Servlet i Java Server Pages Rozdział 17. Pola ukryte Grupowanie elementów kontrolnych Określanie kolejności poruszania się pomiędzy elementami formularzy Testowy serwer EchoServer ThreadedEchoServer NetworkServer Zastosowanie apletów jako interfejsu użytkownika dla serwletów Przesyłanie danych metodą GET i wyświetlanie wynikowej strony Narzędzie korzystające z wielu serwisów wyszukujących Przesyłanie danych metodą GET i bezpośrednie przetwarzanie5 wyników (tunelowanie HTTP) Odczyt danych binarnych lub danych ASCII Odczyt serializowanych struktur danych Przeglądarka zapytań wykorzystująca serializację obiektów i tunelowanie Przesyłanie danych metodą POST i bezpośrednie przetwarzanie5 danych (tunelowanie HTTP) Aplet przesyłający dane metodą POST Pomijanie serwera HTTP Rozdział 18. JDBC oraz zarządzanie pulami połączeń Podstawowe etapy wykorzystania JDBC Załadowanie sterownika Określenie adresu URL połączenia Nawiązanie połączenia Utworzenie polecenia Wykonanie zapytania Przetworzenie wyników Zamknięcie połączenia Prosty przykład wykorzystania JDBC Narzędzia ułatwiające korzystanie z JDBC Wykorzystanie narzędzi ułatwiających obsługę JDBC Interaktywna przeglądarka zapytań Kod przeglądarki zapytań Przygotowane polecenia (prekompilowane zapytania) Zarządzanie pulami połączeń Zarządzanie pulami połączeń: studium zagadnienia Współużytkowanie pul połączeń Współużytkowanie pul połączeń z zastosowaniem kontekstu serwletu Współużytkowanie pul połączeń z zastosowaniem klas singleton Dodatki...r Dodatek A Krótki przewodnik po serwletach i JSP Prezentacja serwletów i JSP Zalety serwletów Zalety JSP Bezpłatnie dostępne oprogramowanie do obsługi serwletów i JSP Dokumentacja Kompilacja serwletów informacje podawane w zmiennej środowiskowej CLASSPATH Standardowe katalogi serwera Tomcat Standardowe katalogi serwera Tomcat

8 Spis treści 9 Standardowe katalogi serwera JSWDK Standardowe katalogi serwera Java Web Server Pierwsze serwlety Prosty serwlet Instalacja serwletów Uruchamianie serwletów Cykl istnienia serwletów Obsługa żądań dane przesyłane z formularzy Odczyt parametrów Przykład serwletu Przykład formularza Filtrowanie znaków specjalnych HTML Obsługa żądań nagłówki żądań HTTP Metody odczytujące nagłówki żądania Inne informacje o żądaniu Najczęściej używane nagłówki żądań protokołu HTTP Dostęp do standardowych zmiennych CGI Możliwości, które nie zostały opisane gdzie indziej Odpowiedniki zmiennych CGI dostępne w serwletach Generowanie odpowiedzi: Kody statusu HTTP Format odpowiedzi HTTP Metody określające kod statusu Kategorie kodów statusu Najczęściej wykorzystywane kody statusu protokołu HTTP Generowanie odpowiedzi nagłówki odpowiedzi protokołu HTTP Generowanie dowolnych nagłówków Generowanie najczęściej używanych nagłówków Najczęściej używane nagłówki odpowiedzi protokołu HTTP Generowanie obrazów GIF przez serwlety Obsługa cookies Typowe zastosowania cookies Problemy napotykane przy stosowaniu cookies Ogólny sposób użycia cookies Metody obsługi cookies Śledzenie sesji Pobieranie informacji o sesji getvalue Kojarzenie informacji z sesją putvalue Metody interfejsu HttpSession Kodowanie adresów URL Elementy skryptowe JSP Typy elementów skryptowych Tekst szablonu Predefiniowane zmienne Dyrektywa page określanie postaci generowanych serwletów Atrybut import Atrybut contenttype Przykład użycia atrybutu contenttype Przykład wykorzystania metody setcontenttype Atrybut isthreadsafe Atrybut session Atrybut buffer Atrybut autoflush Atrybut extends Atrybut info

9 10 Java Servlet i Java Server Pages Atrybut errorpage Atrybut iserrorpage Atrybut language Zapis zgodny z XML Dołączanie plików i apletów do dokumentów JSP Dołączanie plików w czasie przekształcania strony Dołączanie plików w czasie obsługi żądania Aplety obsługiwane przy użyciu Java Plug-In: Prosty przypadek Atrybuty znacznika jsp:plugin Parametry określane w kodzie HTML: jsp:param Tekst alternatywny Wykorzystanie komponentów JavaBeans w dokumentach JSP Podstawowe wymagania jakie należy spełnić, aby klasa mogła być uznana za komponent Podstawowe sposoby użycia komponentów Kojarzenie właściwości z parametrami przesłanymi w żądaniu Wspólne wykorzystywanie komponentów: atrybut scope znacznika akcji jsp:usebean Warunkowe tworzenie komponentów Tworzenie bibliotek znaczników Klasa obsługi znacznika Plik deskryptora biblioteki znaczników Plik JSP Przypisywanie atrybutów znacznikom Dołączanie zawartości znacznika Opcjonalne dołączanie zawartości znacznika Przetwarzanie zawartości znacznika Wielokrotne dołączanie lub przetwarzanie zawartości znacznika Stosowanie zagnieżdżonych znaczników Integracja serwletów i dokumentów JSP Opis ogólny Składnia służąca do przekazania żądania Przekazywanie żądań do zwykłych dokumentów HTML Tworzenie globalnie dostępnych komponentów JavaBeans Tworzenie komponentów JavaBeans dostępnych w sesji Interpretacja względnych adresów URL na stronie docelowej Alternatywne sposoby pobierania obiektu RequestDispatcher5 (wyłącznie Java Servlet 2.2) Dołączenie danych statycznych lub dynamicznych Przekazywanie żądań ze stron JSP Stosowanie formularzy HTML Element FORM Pola tekstowe Pola hasła Obszary tekstowe Przyciski SUBMIT Alternatywna postać przycisków SUBMIT Przyciski RESET Alternatywna postać przycisków RESET Przyciski JavaScript Alternatywna postać przycisków JavaScript Pola wyboru Przyciski opcji Listy rozwijane

10 Spis treści 11 Elementy kontrolne umożliwiające przesyłanie plików na serwer Mapy odnośników obsługiwane na serwerze Pola ukryte Możliwości dostępne w przeglądarce Internet Explorer Wykorzystanie apletów jako interfejsu użytkownika dla serwletów Przesyłanie danych metodą GET i wyświetlanie strony wynikowej Przesyłanie danych metodą GET i bezpośrednie przetwarzanie5 wyników (tunelowanie HTTP) Przesyłanie serializowanych danych kod apletu Przesyłanie serializowanych danych kod serwletu Przesyłanie danych metodą POST i bezpośrednie przetwarzanie5 wyników (tunelowanie HTTP) Pomijanie serwera HTTP JDBC i zarządzanie pulami połączeń z bazami danych Podstawowe etapy wykorzystania JDBC Narzędzia obsługi baz danych Przygotowane polecenia (prekompilowane zapytania) Etapy implementacji puli połączeń Skorowidz...515

11 Rozdział 9. W niniejszym rozdziale przedstawiono sposób, w jaki można wykorzystać mechanizmy śledzenia sesji dostępne w serwletach w celu przechowywania informacji o użytkownikach poruszających się po witrynie WWW. Potrzeba lledzenia sesji Cookies HTTP jest protokołem bezstanowym oznacza to, że za każdym razem, gdy przeglądarka pobiera stronę WWW, tworzone jest niezależne połączenie z serwerem. Serwer nie przechowuje automatycznie żadnych kontekstowych informacji skojarzonych z przeglądarką, która to połączenie nawiązała. Nawet w przypadku serwerów, które wykorzystują trwałe połączenia HTTP i za pomocą jednego połączenia obsługują wiele żądań zgłaszanych w niewielkich odstępach czasu, nie ma żadnych wbudowanych mechanizmów ułatwiających przechowywanie takich kontekstowych informacji. Brak takiego mechanizmu może powodować liczne problemy. Szczególnie widoczne są one w przypadku sklepów internetowych, gdzie istnieje oczywista potrzeba śledzenia sesji użytkownika. Znane są trzy podstawowe sposoby rozwiązywania problemów tego typu cookies, przepisywanie adresów URL oraz zastosowanie ukrytych mpól formularzy. Istnieje możliwość wykorzystywania cookies w celu przechowywania informacji o sesji w sklepie internetowym, a każde kolejne połączenie z tym sklepem może powodować odszukanie danej sesji i pobranie przechowywanych na serwerze informacji o niej. Na przykład, utworzony w tym celu serwlet mógłby przeprowadzać następujące czynności: #8621.#/798;36%2+2./ # ,/203#/72/;+78+,/ +78+,/8+,-+3, $+,-/+2#/77

12 194 Część I Serwlety 2.1 i ,-+3, #/7Г203#/7 33/-33/#/72/;33/###Г.#/7 7/773233/7/8 +8 6/74327/+..33/-33/#/7 Dzięki temu podczas obsługi kolejnych żądań, na podstawie wartości cookie ###, serwer może pobierać z tablicy 8+,-+3,+2+ tablicę asocjacyjną 203#/7 zawierającą informacje o konkretnej sesji. Jest to bardzo dobre rozwiązanie, które często jest wykorzystywane przy obsłudze sesji. Niemniej jednak wciąż istnieje potrzeba posiadania narzędzi programistycznych wyższego poziomu, które pozwoliłyby na implementację bardziej wyrafinowanych rozwiązań. Choć serwlety dysponują łatwymi w obsłudze narzędziami wysokiego poziomu przeznaczonymi do obsługi cookies (opisano je w rozdziale 8.), wciąż jednak istnieje stosunkowo dużo drobnych czynności, które należy przeprowadzić samodzielnie. Do czymnności tych można zaliczyć: J pobieranie cookie przechowującego identyfikator sesjmi (możliwe jest nadesłanie kilku cookies z jednej przeglądarki); J określenie odpowiedniego czasu wygaśnięcia ważności mcookie (sesje, które są nieaktywne przez ponad 24 godziny prawdopodobnie powimnny zostać zamknięte); J skojarzenie tablic asocjacyjnych z każdym żądaniem; J generowanie unikalnego identyfikatora sesji. Należy podkreślić, że ze względu na doskonale znane i oczywiste zagrożenia prywatności, jakie wiążą się z wykorzystywaniem cookies (patrz podrozdział rozdziału 8. Niektóre problemy związane ze stosowaniem cookies ), niektórzy użytkownicy wyłączają ich obsługę. Wynika z tego potrzeba posiadania, oprócz protokołu wysokiego poziomu, także alternatywnego rozwiązania tego problmemu. Przepisywanie adresów URL Rozwiązanie to polega na dopisywaniu na końcu adresu URL pewnych dodatkowych, identyfikujących sesję danych, które pozwalają serwerowi na skojarzenie przekazanego identyfikatora z przechowywanymi informacjami dotyczącymi danej sesji. Na przykład, w adresie URL dołączone informacje o sesji mają postać sessionid=1234. Rozwiązanie to jest bardzo funkcjonalne, a przy tym posiada tę dodatkową zaletę, że można z niego korzystać nawet w przypadku przeglądarek nie obsługujących cookies oraz wtedy, gdy użytkownik wyłączył obsługę cookies. Jednak także i to rozwiązanie zmusza program działający na serwerze do wykonywania wielu prostych, lecz uciążliwych czynności. Poza tym należy zwracać szczególną uwagę, aby każdy adres URL odwołujący się do danej witryny i przekazywany do przeglądarki użytkownika (nawet w sposób niejawny, przykładowo, za pomocą nagłówka ), został uzupełniony do dodatkowe informacje. Inną niedogodnością rozwiązania polegającego na przepisywaniu adresów URL jest fakt, że w po zakończeniu sesji i późniejszym nawiązania kolejnej sesji na danej witrynie za pomocą zapamiętanego adresu lub połączenia, wszystkie dotyczące jej informacje są tracone.

13 Rozdział 9. Śledzenie sesji 195 Ukryte pola formularzy W formularzach HTML można umieszczać pola o następującmej postaci: %$$ 7/7+&% Wykorzystanie takiego elementu oznacza, że podczas przesyłania formularza podana nazwa elementu oraz jego wartość są dołączane do pozostałych informacji przekazywanych na serwer. Więcej informacji na temat ukrytych pól formularzy znajduje się w podrozdziale rozdziału 16. Pola ukryte. W takich ukrytych polach formularzy można przechowywać informacje na temat sesji. Jednak wykorzystywanie tej metody ma jedną podstawową wadę każda strona witryny musi byćm generowana dynamicznie. kledzenie sesji w serwletach Serwlety udostępniają bardzo dobre rozwiązanie problemu śledzenia sesji interfejs 884#/7732. Możliwości funkcjonalne tego interfejsu bazują na wykorzystywaniu cookies lub przepisywania adresów URL. W rzeczywistości większość serwerów wykorzystuje cookies, pod warunkiem, że są one obsługiwane przez przeglądarkę użytkownika. Jeśli przeglądarka nie obsługuje cookies lub gdy ich obsługa została jawnie wyłączona, często automatycznie stosowane jest przepisywanie adresów URL. W ten sposób autorzy serwletów nie muszą jawnie obsługiwać cookies ani informacji dołączanych do adresów URL, a zyskują bardzo wygodny sposób przechowywania dowolnych obiektów skojarzonych z każdą sesją. Narzdzia programistyczne do lledzenia sesji Wykorzystanie śledzenia sesji w serwletach jest bardzo proste i wiąże się z pobieraniem obiektu sesji skojarzonego z obsługiwanym żądaniem, w razie konieczności z tworzeniem nowego obiektu sesji, pobieraniem informacji skojarzonych z sesją, zapisywaniem informacji w obiekcie sesji oraz z usuwaniem przerwanych lub zakończonych sesji. Dodatkowo, jeśli do użytkownika przekazywane są jakiekolwiek adresy URL odwołujące się do danej witryny i jeśli jest stosowane przepisywanie adresów URL, to do każdego adresu URL należy dołączać informacje mo sesji. Pobieranie obiektu HttpSession skojarzonego z biercym rdaniem Obiekt 884#/7732 można pobierać za pomocą metody 1/8#/7732 interfejsu 884 #/6:/8"/59/78. System pobiera identyfikator użytkownika z cookie lub z informacji dołączonych do adresu URL w niewidoczny sposób, a następnie używa go jako klucza przy pobieraniu odpowiedniego elementu z tablicy utworzonych wcześniej obiektów

14 196 Część I Serwlety 2.1 i #/7732. Wszystkie te czynności są wykonywane w sposób niezauważalny dla programisty, który jedynie wywołuje metodę 1/8#/7732. Jeśli wywołanie tej metody zwraca wartość 29, oznacza to, że z danym użytkownikiem jeszcze nie skojarzono żadnej sesji, a zatem można ją utworzyć. Sesje są tworzone bardzo często, zatem dostępna jest specjalna opcja pozwalająca na utworzenie nowej sesji, jeśli sesja dla danego użytkownika jeszcze nie istnieje. W tym celu wystarczy przekazać wartość 869/ w wywołaniu metody 1/8#/7732. A zatem, pierwszy krok przy rozpoczynaniu sesji zazwyczaj wygląda w następujący sposób: 884#/77327/7+6/59/781/8#/ / Sprawdzenie, czy dana sesja istniała już wcześniej, lub czy też została właśnie utworzona, jest możliwe za pomocą metody 7/;. Pobieranie informacji skojarzonych z sesj Obiekty 884#/7732 są przechowywane na serwerze. Są one automatycznie kojarzone z żądaniami podczas wykorzystywania niewidocznych mechanizmów, takich jak cookies lub przepisywanie adresów URL. Obiekty te posiadają wbudowaną strukturę danych, która umożliwia im przechowywanie dowolnej liczby kluczy oraz skojarzonych z nimi wartości. W specyfikacjach Java Servlet 2.1 oraz wcześniejszych do pobrania wartości uprzednio zapisanej w sesji stosuje się wywołanie 7/77321/8&+9/ 2+;+86,989. Metoda 1/8&+9/ zwraca obiekt typu,/-8, a zatem przywrócenie oryginalnego typu danej zapisanej w sesji jest możliwe poprzez zastosowanie odpowiedniego rzutowania typów. Metoda zwraca wartość 29, jeśli nie ma atrybutu o podanej nazwie. Oznacza to, że przed wywołaniem jakichkolwiek metod obiektu skojarzonego z sesją należy sprawdzić, czy nie jest mto wartość 29. W specyfikacji Java Servlet 2.2 metoda 1/8&+9/ została uznana za przestarzałą i zastąpiono ją metodą 1/8886,98/. Nazwa tej metody lepiej odpowiada metodzie 7/8886,98/ (w specyfikacji 2.1 metodzie 1/8&+9/ odpowiadała metoda 498&+9/, a nie 7/8&+9/). W przykładach przedstawionych w niniejszej książce zastosowano metodę 1/8&+9/, gdyż nie wszystkie dostępne na rynku komercyjne mechanizmy obsługi serwletów są zgodne ze specyfikacją 2.2. Poniżej podano przykład wykorzystania mechanizmu śledzenia sesji. Założono, że # jest klasą zdefiniowaną w celu przechowywania informacji o zamawianych produktach (implementację tej klasy zamieszczono w podrozdziale Internetowy sklep wykorzystujący koszyki i śledzenie sesji ). 884#/77327/7+6/59/781/8#/ / # # /7+1/8&+9/ ;7/72/+/7-/ /;# /7+498&+9/ Г37 63,3737/37 W większości przypadków nazwa atrybutu jest znana, a celem działania jest pobranie wartości skojarzonej z tą nazwą. Istnieje także możliwość pobrania nazw wszystkich atrybutów skojarzonych z daną sesją służy do tego metoda 1/8&+9/+/7 zwracająca

15 Rozdział 9. Śledzenie sesji 197 tablicę łańcuchów znaków. Ta metoda jest jedynym sposobem określenia nazw atrybutów w przypadku korzystania z mechanizmów obsługi serwletów zgodnych ze specyfikacją Java Servlet 2.1. W przypadku mechanizmów zgodnych ze specyfikacją 2.2 nazwy atrybutów można pobierać za pomocą metody 1/8886,98/+/7. Metoda ta działa w bardziej spójny sposób, gdyż zwraca obiekt 29/6+832, podobnie jak metody 1/8/+./6+/7 oraz 1/8 +6+/8/6+/7 interfejsu 884#/6:/8"/59/78. Najczęściej wykorzystywanymi danymi są dane bezpośrednio skojarzone z sesją, niemniej jednak dostępne są także inne, użyteczne informacje dotyczące sesji. Poniżej przedstawiono metody interfejsu 884#/7732: public Object getvalue(string nazwa) public Object getattribute(string nazwa) Metody te pobierają z obiektu sesji wartość, która umprzednio została w nim zapisana. Obydwie metody zwracają wartość 29, jeśli z podaną nazwą nie jest skojarzona żadna wartość. W mechanizmach obsługi serwmletów zgodnych ze specyfikacją Java Servlet 2.1 należy używać metody 1/8&+9/. W mechanizmach zgodnych ze specyfikacją 2.2 można używać obydwu metodm, jednak zalecane jest stosowanie metody 1/8886,98/, gdyż metoda 1/8&+9/ została uznana za przestarzałą. public void putvalue(string nazwa, Object wartolć) public void setattribute(string nazwa, Object wartoelć) Te metody kojarzą wartość atrybutu z jego nazwą. W mecmhanizmach obsługi serwletów zgodnych ze specyfikacją Java Servlet 2.1 należmy używać metody 498&+9/, natomiast w mechanizmach zgodnych ze specyfikacją m2.2 można stosować obydwie metody (rekomendowana jest metoda m7/8886,98/, gdyż metoda 498&+9/ została uznana za przestarzałą). Jeśli obiekt przekazamny w wywołaniu metody 498&+9/ lub 7/8886,98/ implementuje interfejs 884#/ /2/6, to po zapisaniu tego obiektu w sesji jest wywoływana jego metoda :+9/392.. Podobnie, jeśli obiekt implementuje interfejs 884#/ /2/6, po jego usunięciu z sesji jest wywoływana metoda :+9/%2,392. tego obiektu. public void removevalue(string nazwa) public void removeattribute(string nazwa) Obydwie te metody powodują usunięcie wartości skojarmzonych z podaną nazwą. Jeśli usuwana wartość implementuje interfejs 884#/ /2/6, wywoływana jest jej metoda :+9/%2,392.. W mechanizmach obsługi serwletów zgodnych ze specyfikacją Java Servlet 2.1 należy używać mmetody 6/3:/&+9/. W mechanizmach zgodnych ze specyfikacją 2.2 preferowanme jest użycie metody 6/3:/886,98/, choć w celu zapewnienia zgodności z poprzednimi wersjami oprogramowania można także używać metody 6/3:/&+9/ (uznawanej za przestarzałą).

16 198 Część I Serwlety 2.1 i 2.2 public String[] getvaluenames() public Enumeration getattributenames() Te metody zwracają nazwy wszystkich atrybutów w danemj sesji. W przypadku mechanizmów obsługi serwletów zgodnych ze specyfikacmją Java Servlet 2.1 należy używać metody 1/8&+9/+/7. W przypadku mechanizmów zgodnych ze specyfikacją 2.2 metoda ta jest wciąż dostępna, lecmz uznana za przestarzałą i z tego względu należy stosować metodę 1/8886,98/+/7. public String getid() Jest to metoda zwracająca unikalny identyfikator generowany dla każdej z sesji. Identyfikator ten jest czasami używany jako nazwa kmlucza. Dotyczy to sytuacji, gdy z sesją jest skojarzona tylko jedna wartość lub mgdy informacje o sesji są rejestrowane. public boolean isnew() Jest to metoda zwracająca wartość 869/, jeśli klient jeszcze nigdy nie korzystał z sesji (zazwyczaj dlatego, że sesja została właśnie mutworzona, a odbierane żądania jeszcze się do niej nie odwoływały). Jeśli danam sesja już istnieje od jakiegoś czasu, metoda ta zwraca wartość 0+7/. public long getcreationtime() Ta metoda zwraca czas utworzenia sesji wyrażony jakmo liczba milisekund, jakie upłynęły od początku 1970 roku (GMT). Aby przekształcić mtę wartość do powszechnie stosowanej formy, należy przekazać jmą do konstruktora klasy +8/ lub posłużyć się metodą 7/8$/27 klasy 6/136+2+/2.+6. public long getlastaccesstime() Metoda ta zwraca czas ostatniego przesłania sesji z pmrzeglądarki na serwer. Czas ten jest wyrażony jako liczba milisekund, jakime upłynęły od początku 1970 roku (GMT). public int getmaxinactiveinterval() public void setmaxinactiveinterval(int ilolćsekund) Pierwsza z tych metod pobiera, a druga określa czas m(wyrażony w sekundach), w którym klient musi nadesłać żądanie, aby sesja niem została automatycznie unieważniona. Jeśli w wywołaniu metody 7/8+2+-8:/28/6:+ jest podana wartość mniejsza od zera, dana sesja nigdy nie zostmanie automatycznie unieważniona. Należy pamiętać, iż limit czasu oczekimwania sesji jest przechowywany na serwerze i nie odpowiada dacie wygmaśnięcia ważności cookies, która jest przesyłana do przeglądarki. public void invalidate() Wywołanie tej metody powoduje unieważnienie sesji im usunięcie z niej wszystkich skojarzonych z nią obiektów.

17 Rozdział 9. Śledzenie sesji 199 Kojarzenie informacji z sesj Zgodnie z tym, co podano w poprzednim podrozdziale, informacje skojarzone z sesją można odczytywać za pomocą metody 1/8&+9/ (stosowanej w mechanizmach obsługi serwletów zgodnych ze specyfikacją Java Servlet 2.1) oraz 1/8886,98/ (stosowanej w mechanizmach obsługi serwletów zgodnych ze specyfikacją 2.2). Aby podać te informacje w przypadku korzystania z mechanizmów obsługi serwletów zgodnych ze specyfikacją 2.1, należy posłużyć się metodą 498&+9/, podając w jej wywołaniu klucz oraz wartość. W przypadku wykorzystywania mechanizmów zgodnych ze specyfikacją Java Servlet 2.2, należy zastosować metodę 7/8886,98/. Nazwa tej metody jest bardziej spójna z ogólnie stosowanym nazewnictwem, gdyż występują tu notacje 7/81/8 stosowane w komponentach JavaBeans. Aby wartości przechowywane w sesji mogły dawać jakieś efekty w chwili ich zapisywania w sesji, używane obiekty muszą implementować interfejs 884#/ /2/6. Dzięki temu za każdym razem, gdy za pomocą metody 498&+9/ lub 7/8886,98/ nastąpi skojarzenie jakiegoś obiektu z sesją, zostanie wywołana jego metomda :+9/392.. Trzeba pamiętać, że metody 498&+9/ oraz 7/8886,98/ zastępują wszelkie wartości skojarzone z podaną nazwą. Jeśli trzeba usunąć tę wartość bez podawania zamiennika, należy posłużyć się metodą 6/3:/&+9/ (w przypadku korzystania z mechanizmów obsługi serwletów zgodnych ze specyfikacją Java Servlet 2.1) lub 6/3:/886,98/ (w przypadku korzystania z mechanizmów obsługi serwletów zgodnych ze specyfikacją 2.2). Jeśli usuwane obiekty implementują interfejs 884#/ /2/6, wywołanie którejkolwiek z tych metod spowoduje wywołanie metody :+9/%2,392. usuwanego obiektu. Czasami zachodzi potrzeba jedynie zastąpienia istniejącej wartości atrybutu. W takim przypadku można zastosować metodę przedstawioną w drugim wierszu poniższego przykładu (określającego wartość atrybutu 6/0/ /). Jeżeli należy pobrać aktualną wartość atrybutu i zmodyfikować ją można posłużyć się przedstawionym w poniższym przykładzie sposobem (operacje wykonywane na atrybucie 46/:3978/). Założono, że w poniższym przykładzie wykorzystywane są dwie klasy klasa # dysponująca metodą +..8/, obiekty której służą do przechowywania informacji o wybranych produktach, oraz klasa udostępniająca statyczną metodę 1/88/ zwracającą produkt na podstawie podanego identyfikatora. Implementacje tych klas zamieszczono w podrozdziale Internetowy sklep wykorzystujący koszyki i śledzenie sesji. 884#/77327/7+6/59/781/8#/ / 7/7+498&+9/6/0/ /Г6/59/781/8/+./6"/0/6/6 # # /7+1/8&+9/46/:3978/ 03729;7/72/+/7-/+.2/ /;# /7+498&+9/46/:3978/Г37 # /59/781/8 +6+/8/68/ /+8+311/88/

18 200 Część I Serwlety 2.1 i 2.2 Koczenie sesji Sesja automatycznie staje się nieaktywna, jeśli odstęp pomiędzy kolejnymi żądaniami przekroczy czas określony przez metodę 1/8+2+-8:/28/6:+. W tym momencie automatycznie są usuwane wszelkie skojarzenia obiektów z tą sesją. To z kolei sprawia, że obiekty implementujące interfejs 884#/ /2/6 są zawiadomiane o fakcie usunięcia ich z sesji. Istnieje również sposób jawnego kończenia sesji służmy do tego metoda 2:+.+8/. Przepisywanie adresów URL przesyłanych do przegldarki Jeśli przy śledzeniu sesji wykorzystywana jest metoda przepisywania adresów URL i jeśli do przeglądarki przesyłane są adresy URL odwołujące się do danej witryny, konieczne jest jawne dodawanie do nich informacje o sesji. Wspomniano, że serwlety mogą automatycznie stosować metodę przepisywania adresów URL, jeśli przeglądarka nie obsługuje cookies. Dlatego też należy zawsze kodować wszystkie adresy URL odwołujące się do witryny. Adresy URL odwołujące się do tej samej witryny mogą być stosowane w dwóch przypadkach. Pierwszym z nich są strony WWW generowane przez serwlety. Adresy umieszczane na takich stronach powinny być odpowiednio zakodowane za pomocą metody /2-3./%" interfejsu 884#/6:/8"/74327/. Metoda ta automatycznie stwierdza, czy przepisywanie adresów jest aktualnie wykorzystywane i w razie konieczności dopisuje do adresu informacje o sesji. W przeciwnym razie metoda zwraca adresu URL w oryginalnej postaci. Oto przykład: # %"+7%");1/.29,/;1/.2 #8621+3;3;+2%"6/74327//2-3./%"3612+2%" "+3.3;+2%" Drugim przypadkiem, gdzie podaje się adresy URL odwołujące się do tej samej witryny, jest wywołanie metody 7/2."/.6/-8 (oznacza to, że adresy te są umieszczane w nagłówku odpowiedzi ). W tym przypadku obowiązują inne sposoby określania, czy do adresu należy dodać informacje o sesji czy nie, a zatem nie można posłużyć się metodą /2-3./%". Interfejs 884#/6:/8"/74327/ udostępnia metodę /2-3./ "/.6/-8%", którą można zastosować w takich sytuacjach. Oto przykład zastosowania tej metody: # %"+7%"74/ ;++2+9;+2/ ; /7;7%" # ;+2%"6/74327//2-3./"/.6/-8%" %" 6/74327/7/2."/.6/-8+3.3;+2%" Często się zdarza, że w chwili tworzenia serwletu nie można przewidzieć, czy w przyszłości stanie się on częścią grupy strony wykorzystujących śledzenie sesji. Warto zatem uwzględnić taką możliwość i zapewnić kodowanie w serwlecie wszystkich adresów URL odwołujących się do tej samej witryny.

19 Rozdział 9. Śledzenie sesji 201 Wskazane jest, aby wszystkie adresy URL odwołujce si do tej samej witryny przekształcać za pomoc metod 6/74327//2-3./%" lub 6/74327//2-3./"/.6/-8%", niezalernie od tego, czy serwlet wykorzystuje mechantizmy lledzenia sesji. Serwlet generujcy indywidualny licznik odwiedzin dla kardego urytkownika Listing 9.1 przedstawia prosty serwlet wyświetlający podstawowe informacje dotyczące sesji. Po nawiązaniu połączenia serwlet pobiera istniejącą sesję lub, jeśli sesji jeszcze nie ma, tworzy ją. Obydwie te czynności realizowane są za pomocą jednego wywołania 6/59/781/8#/ /. Następnie serwlet sprawdza, czy w sesji zapisano atrybut typu 28/1/6 o nazwie +--/ Jeśli atrybut ten nie jest odnaleziony, zakłada się, że liczba wcześniejszych odwiedzin danej strony wynosi. Jeśli atrybut +--/ zostanie odnaleziony, serwlet pobiera jego wartość. Wartość ta jest następnie inkrementowana i ponownie kojarzona z sesją poprzez wywołanie metody 498&+9/. Następnie serwlet generuje niewielką tabelę HTML zawierającą informacje o sesji. Rysunek 9.1 przedstawia stronę wygenerowaną przez serwlet podczas pierwszej wizyty użytkownika na witrynie, a rysunek 9.2 po jej kilkukrotnym odświeżeniu. Listing 9.1. ShowSession.java 4+-+1/-36/7/6:/ : :+7/6:/ :+7/6:/ :+2/ : o+././2+7/7+6./ ++;+273;+246o+.//784// ; # :+ 49,--+77#3;#/7732/8/2.7884#/6:/8 49,-:3..3/8884#/6:/8"/59/786/59/78Г 884#/6:/8"/74327/6/74327/ 863;7#/6:/8-/4832Г-/4832 6/74327/7/8328/28$4/8/88-+67/8# 628'68/63986/74327/1/8'68/6 #862188/ 6o+././2+7/7 884#/77327/77326/59/781/8#/ / #8621/+.21 '/-+2+-3,7o917/6;/8;13.2-/74/-0+- +:+#/6:/8++78/83.1/8&+9/2+/78373;+

20 202 Część I Serwlety 2.1 i 2.2 /83.1/8886,98/ 28/1/6+--/ /1/67/77321/8&+9/+--/ / / /;28/1/6 /+.21'8+Г23;/2-/ /7/ /+.21'8+4323;2/ +--/ /;28/1/6+--/ &+9/ '/-+2+-3,7o917/6;/8;13.2-/74/-0+- +:+#/6:/8++78/83.498&+9/2+/78373;+ /83.7/8886,98/ 7/ &+9/+--/773928Г+--/ #/6:/8%88/7/+.'8$8/88/ "2 $"/ /3$;3/7/72 $""$"2 $""2 $$4$'+6832 $"2 $2 $7/77321/8.2 $"2 $+798;36/2+2 $ 2/;+8/7/77321/86/+832$/2 $"2 $ / $ 2/;+8/7/77321/8+78--/77/.$/2 $"2 $33.;/.22 $+--/ $2 $.+2+$ #$+,3,7o91;+2//.2+3;3 49,-: #/6:/8"/59/786/59/78Г 884#/6:/8"/74327/6/74327/ 863;7#/6:/8-/4832Г-/4832.3/86/59/78Г6/74327/

21 Rozdział 9. Śledzenie sesji 203 Rysunek 9.1. Strona wygenerowana po pierwszym wykonaniu serwletu ShowSession Rysunek 9.2. Strona wygenerowana po jedenastym wykonaniu serwletu ShowSession Internetowy sklep wykorzystujcy koszyki i lledzenie sesji W tym podrozdziale przedstawiono rozbudowany przykład opisujący sposób tworzenia internetowego sklepu wykorzystującego mechanizmy śledzenia sesji. W pierwszej części podrozdziału przedstawiono sposób tworzenia stron wyświetlających informacje o sprzedawanych produktach. Kod każdej ze stron prezentujących sprzedawane produkty zawiera wyłącznie tytuł strony oraz identyfimkatory produktów, jakie mają się na niej pojawić. Sam kod HTML każdej z tych stron jest generowany automatycznie przez metody klasy bazowej na podstawie opisów produktów przechowywanych w katalogu. W drugiej części podrozdziału opisano stronę obsługującą zamawianie produktów. Strona ta kojarzy każdego z użytkowników z koszykiem i pozwala użytkownikowi na zmodyfikowanie liczby każdego z zamówionych produktów. W celu prawidłowego kojarzenia użytkowników z koszykami strona ta wykorzystuje mechanizmy

22 204 Część I Serwlety 2.1 i 2.2 śledzenia sesji. W trzeciej części niniejszego podrozdziału przedstawiono implementację koszyka struktury danych reprezentującej poszczególne produkty oraz zamówienia oraz katalogu produktów. Tworzenie interfejsu urytkownika Listing 9.2 przedstawia abstrakcyjną klasę bazową używaną podczas tworzenia serwletów, które mają prezentować sprzedawane produkty. Serwlet ten pobiera identyfikatory produktów, odszukuje je w katalogu, a następnie pobiera z niego nazwy i ceny produktów i wyświetla je na stronie umożliwiającej zamawianie. Listingi 9.3 oraz 9.4 przedstawiają łatwy sposób tworzenia stron zawierających informacje o produktach za pomocą klasy bazowej z listingu 9.2. Wygląd stron zdefiniowanych na listingach 9.3 oraz 9.4 został przedstawiony na rysunkach 9.3 oraz 9.4. Listing 9.2. CatalogPage.java 4+-+1/-36/7/6:/ : :+7/6:/ :+7/6:/ : ,+3; // #/6;/8./.--/438/+7,+3;/97 36/;;/8+2//// o /6;/8378+2/;32+2 '8-/9;/83./288+/137/6;/892+/7 ;;3o+/83.7/88/736+7/8$8/+7,+3;/7 49,-+, //8/2.7884#/6:/8 46:+8/8/8/7 46:+8/#86218/7 46:+8/#862188/ ,-./ ;463.98; /; ;+.+-/7 3,/88/.38+,-8/7,/88/+;/ Г4/o / Г //78./ #/6;/8./.--/43+7/ /,97,;;3o;+8/83.+;-+ ;/83./28+27/6;/8378+2/;;3o /-8/.:3.7/88/7#86218/7 878/78/7 8/72/;8/8/7/ /7/218 8/ /88/8/7

23 Rozdział 9. Śledzenie sesji 205 6/+889o78632Г86/78;;/ /;23;/;2+1o;9 #/6;/8./.--/43+7/ /,97,;;3o;+8/83.+;-+ ;/83./28+27/6;/8378+2/;;3o /-8/.:3.7/8$8/#862188/ 8788/88/ /83.+;4/6;7/3/23-;;/8+889oГ /.++./ Г86+,46/.778+; /78632/Г;;/8+/ ;72+1o;9 Г-/2;2+; /o / 32/3479+./ ;;/8+2/ ;+- o3/2/+;/ /13.+2/ / 46/7o+2/7.37/6;/896./6 +1/,3,+-3.$1/2/63;+246/8/83.Г2+/ ;32+7/6;/ /9,$/ /3,7.;/ 8/+7./.-43+,786+-2/+7/ / ;,6+34-';/83.6.o3;9,/3.43;7/.2 ;46/1.+6-/ 49,-:3..3/8884#/6:/8"/59/786/59/78Г 884#/6:/8"/74327/6/74327/ 863;7#/6:/8-/4832Г-/4832 6/74327/7/8328/28$4/8/88-+67/8# 08/729 6/74327/7/ /74327/#)$)%Г ; 6/ '68/63986/74327/1/8'68/ #/6:/8%88/7/+.'8$8/88/ "2 $"88/ 8/8/ /7/ " 8/8/7 ';/ /3,o./Г/ o+./ Г86/132/+; / $"" /2+2./ /7 $ /7/ # %" 7/6:/8-36/7/6:/876./6 +1/.6/7%"3.;3o9-/7.38/7+/;86272+/ 46/78+o /83./2-3./%" 036%"6/74327//2-3./%"036%"

24 206 Część I Serwlety 2.1 i 2.2 "$036%"2 %$$ 8/ &%8/1/88/2 8/1/8#368/ /1/ /1/8321/ $"2 %$$ #%$ &% $"2 2" "2$.+2+ #$$+,3,7o91;+2/ ,-: #/6:/8"/59/786/59/78Г 884#/6:/8"/74327/6/74327/ 863;7#/6:/8-/4832Г-/4832.3/86/59/78Г6/74327/ Listing 9.3. KidsBooksPage.java 4+-+1/-36/7/6:/ /6;/ /;;/ '''93;+-+;/2/86/-2+2-7/67/.+./- +;/2+746/7o+2/.37/6;/896./6 +1/ 49, //8/ / 49,-:3.28 #8621.7/;7Г+/+2./6Г63;21 7/88/7.7 7/8$8/'-2+/47/ /-7 Listing 9.4. TechBooksPage.java 4+-+1/-36/7/6:/ /6;/ /;;/ '''93;+-+;/2/.; o-7/3498/63;- +;/2+746/7o+2/.37/6;/896./6 +1/ 49,--+77$/ //8/ / 49,-:3.28 # Г+ 7/88/7.7

25 Rozdział 9. Śledzenie sesji 207 7/8$8/'-2+/47/73498/63;/ Rysunek 9.3. Wyniki wykonania serwletu KidsBooksPage Obsługa zamówie Listing 9.5 przedstawia kod serwletu służącego do obsługi zamówień nadsyłanych przez różne strony katalogowe (przedstawione w poprzedniej części podrozdziału). Serwlet ten kojarzy każdego użytkownika z koszykiem wykorzystując przy tym mechanizmy śledzenia sesji. Ponieważ każdy użytkownik dysponuje osobnym koszykiem, jest mało prawdopodobne, że wiele wątków będzie jednocześnie próbowało uzyskać dostęp do tego samego koszyka. Niemniej jednak można wyobrazić sobie sytuację, w których mógłby nastąpić jednoczesny dostęp do tego samego koszyka.

26 208 Część I Serwlety 2.1 i 2.2 Rysunek 9.4. Wyniki wykonania serwletu TechBooksPage Zatem w celu zapewnienia wysokiego poziomu bezpieczeństwa kod serwletu synchronizuje dostęp do koszyków na podstawie obiektu sesji. W ten sposób inne wątki korzystające z tej samej sesji nie będą mogły równocześnie uzyskiwać dostępu do przechowywanych w niej informacji, choć wciąż będzie możliwa równoczesna obsługa żądań nadsyłanych przez różnych użytkowników. Typowe wyniki wykonania tego serwletu zostały przedstawione na rysunkach 9.5 oraz 9m.6. Listing 9.5. OrderPage.java 4+-+1/-36/7/6:/ : :+7/6:/ :+7/6:/ : :+8/89,/636+8 ';/ / Г86/+89+2/ 2+.97;379# / ;3/;o+72/7/7/Г ;/86-36/+2//78462+/2337;/83 /784/6;7+; /93;+-/ 7o+.+2/+;/qГ/788;363223;37 %83;2-+;-+46/ / // Г86/32+++;+Г.+8/13

27 Rozdział 9. Śledzenie sesji 209 8/ /23;/// / ; /78/78632;;/ o , / ; ;/2/7 43+2/-,/1/4+6/.2/13++; ; 49, /6 +1//8/2.7884#/6:/8 49,-:3..3/8884#/6:/8"/59/786/59/78Г 884#/6:/8"/74327/6/74327/ 863;7#/6:/8-/4832Г-/ #/77327/77326/59/781/8#/ / # /.7/ # /77321/8&+9/ ;-983;2;8;3632/723;/37 %83;2-Г ;+8-Г86/378+o.+2-;-/2/98;3632/ /;# / &+9/ Г-+68 #86218/6/59/781/8 +6+/8/68/ 08/29 # /7#8621 6/59/781/8 +6+/8/6298/7 0298/7# /; o43.+2./ / 2/-,+Г Г/983;2876+0o /.2/ / //289-/ /8/ /7/ /; o ;23./ ,+Г Г/9837;2 86+0o ;/2/43+2/-,/1/4+6/7.2/13 ++; ;+/;6-9;+1Г743.+2/ ; ,/1/4+6++;+27/ ;Г/ / / /728/1/64+67/28298/7# ,/636+8-/483220/ 298/ /896./6/.8/Г298/ ;/2+2/+/2/3.8/13Г-983;2 /3.03;+o-2/ 6/74327/7/8328/28$4/8/88-+67/8# 628'68/63986/74327/1/8'68/6 #862188/#8+897+;/ #/6:/8%88/7/+.'8$8/88/

28 210 Część I Serwlety 2.1 i 2.2 "2 $"88/ /.7/7732 &/-8368/76./6/.-+681/88/76./6/. 08/76./6/.7/ ;;379 /7/ /;379/ //./ Г ;;/88+,/ $""$"2 $""2 $./ $472 $/2+/.23783;+$3$'+683 8/6./636./ ;-/7-4346/-29Г ;78+; ,22/;+98Г78. ; /,/-978+;/ ,/ /6 9,/636+81/8966/ / # %" 7/6:/8-36/7/6:/876./6 +1/.6/7%"3.;3o9-/ /7+/; /78+o /83./2-3./%" 036%"6/74327//2-3./%"036%" ++./ /7-32/13;3797 8;36;/678+,/+;/6+-./ Г347Г/13-/2/.23783;Г -,+;32-/1/4+636+o-2-/2 -,++;+2-/1/4+6;;/8+ ;4398/783;Г8++,983;21o7/ ;3Г3,343+Г;;/ ;/2/Г8643;3.9/4323;2/7 46/7o+2/8/7+/ /6;/6Г46-7 /2+2+/78-,+++;+2-/1/ / /76./6/.7/ 36./68/6./68/76./6/./// $"2 $36./61/88/2 $36./61/8#368/ $ / /61/8% $ "$036%"2 %$$ 8/2 &%36./61/88/2 %$$ $$298/72 #&% 36./61/898/72 #2 %$$ #%$2 &%89+9+;/2/2

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

SPIS TREŚCI...1 PODZIĘKOWANIA...11

SPIS TREŚCI...1 PODZIĘKOWANIA...11 Spis Treści SPIS TREŚCI...1 PODZIĘKOWANIA...11 O AUTORZE...11 WPROWADZENIE...12 PRAWDZIWY KOD DLA PRAWDZIWYCH PROGRAMISTÓW...13 W JAKI SPOSÓB ZORGANIZOWANA JEST TA KSIĄŻKA...13 Część 1.: Serwlety...14

Bardziej szczegółowo

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne) 1 90 min. Aplikacje WWW Harmonogram ń, semestr zimowy -2017 (studia stacjonarne) 6 października Wprowadzenie do aplikacji WWW Rys historyczny Składniki architektury WWW o klient HTTP o serwer HTTP o protokół

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat Ciasteczka trwałe i sesyjne Ciasteczka trwałe - pozostają na komputerze użytkownika po zamknięciu strony, z której zostały pobrane / przeglądarki. Ciasteczka sesyjne - są związane

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008 Adam 1 grudnia 2008 Wstęp Opis Historia Apache kontener serwletów rozwijany w ramach projektu Apache jeden z bardziej popularnych kontenerów Web open source, Apache Software License rozwijany przez ASF

Bardziej szczegółowo

mgr inż. Michał Paluch

mgr inż. Michał Paluch Komunikacja w Internecie Użytkownik klika w odpowiednie łącze. Przeglądarka formatuje żądanie i wysyła Serwer odnajduje zasób, formatuje odpowiedź i przesyła do przeglądarki. Protokół HTTP Zadania klienta

Bardziej szczegółowo

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje Internetowe, Servlety, JSP i JDBC Aplikacje Internetowe, Servlety, JSP i JDBC Opis Java 2 Enterprise Edition (JEE) jest potężną platformą do tworzenia aplikacji webowych. PLatforma JEE oferuje wszystkie zalety tworzenia w Javie plus wszechstronny

Bardziej szczegółowo

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę

Bardziej szczegółowo

Ćwiczenie: JavaScript Cookies (3x45 minut)

Ćwiczenie: JavaScript Cookies (3x45 minut) Ćwiczenie: JavaScript Cookies (3x45 minut) Cookies niewielkie porcje danych tekstowych, które mogą być przesyłane między serwerem a przeglądarką. Przeglądarka przechowuje te dane przez określony czas.

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego

Bardziej szczegółowo

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Część I Rozpoczęcie pracy z usługami Reporting Services

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

Bardziej szczegółowo

Plan. Stan sesji (1/2) Stan sesji (2/2) Stan sesji Tworzenie przycisku Integracja prostego formularza z raportem Tworzenie formularza z raportem

Plan. Stan sesji (1/2) Stan sesji (2/2) Stan sesji Tworzenie przycisku Integracja prostego formularza z raportem Tworzenie formularza z raportem 5 Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów Plan Stan sesji Tworzenie przycisku Integracja prostego formularza z raportem Tworzenie formularza z raportem 2 Stan sesji (1/2)

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

pawel.rajba@gmail.com, http://kursy24.eu/

pawel.rajba@gmail.com, http://kursy24.eu/ pawel.rajba@gmail.com, http://kursy24.eu/ Servlets Charakterystyka Główne metody Obiekty request i response JSP Dyrektywy Elementy skryptowe Elementy akcji Generowanie treści Obiekty niejawne Obiekty request

Bardziej szczegółowo

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE IDZ DO PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG KSI EK KATALOG ONLINE P³atnik. Przewodnik Autor: Adam Józefiok ISBN: 83-246-0404-9 Format: A5, stron: 288 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:

Bardziej szczegółowo

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Przykłady na podstawie zadań lab. z przedmiotu Technologie internetowe

Bardziej szczegółowo

Sklep internetowy wtspartner.pl dokłada wszelkich starań, aby prowadzony serwis ułatwiał każdemu użytkownikowi

Sklep internetowy wtspartner.pl dokłada wszelkich starań, aby prowadzony serwis ułatwiał każdemu użytkownikowi Stosowanie ciasteczek (cookies) Sklep internetowy wtspartner.pl dokłada wszelkich starań, aby prowadzony serwis ułatwiał każdemu użytkownikowi przeglądanie strony i składanie zamówień. Dlatego w trosce

Bardziej szczegółowo

Zasady Wykorzystywania Plików Cookies

Zasady Wykorzystywania Plików Cookies Zasady Wykorzystywania Plików Cookies Definicje i objaśnienia używanych pojęć Ilekroć w niniejszym zbiorze Zasad wykorzystywania plików Cookies pojawia się któreś z poniższych określeń, należy rozumieć

Bardziej szczegółowo

Podręcznik Integracji

Podręcznik Integracji Podręcznik Integracji Spis treści 1. Integracja oferty... 3 1.1. Samodzielne wprowadzanie oferty sklepu... 3 1.2. Automatyczne wprowadzanie oferty z pliku XML... 3 1.3. Cyklicznie pobieranie oferty ze

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

POLITYKA PRYWATNOŚCI SERWIS:

POLITYKA PRYWATNOŚCI SERWIS: POLITYKA PRYWATNOŚCI - SERWIS: WWW.HIPOTEKA-GOTOWKA.PL Polityka Prywatności jest zbiorem reguł, które mają na celu poinformowanie Użytkowników tego Serwisu o wszelkich aspektach pozyskiwania, przetwarzania

Bardziej szczegółowo

Instrukcja do programu Przypominacz 1.5

Instrukcja do programu Przypominacz 1.5 Instrukcja do programu Przypominacz 1.5 Program Przypominacz 1.5 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do prowadzenia tzw. miękkiej windykacji poprzez wysyłanie kontrahentom

Bardziej szczegółowo

Polityka prywatności 1. Definicje Administrator Cookies - Cookies Administratora - Cookies Zewnętrzne - Serwis - Urządzenie - Ustawa Użytkownik -

Polityka prywatności 1. Definicje Administrator Cookies - Cookies Administratora - Cookies Zewnętrzne - Serwis - Urządzenie - Ustawa Użytkownik - Polityka prywatności Niniejsza Polityka Prywatności określa zasady przechowywania i dostępu do informacji na urządzeniach Użytkownika za pomocą plików Cookies, służących do realizacji usług świadczonych

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL. E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL. Autor: Larry Ullman Poznaj zasady wirtualnego handlu i zarabiaj prawdziwe pieniądze Jak stworzyć doskonałą witrynę sklepu internetowego? Jak

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

Instrukcja do programu DoUPS 1.0

Instrukcja do programu DoUPS 1.0 Instrukcja do programu DoUPS 1.0 Program DoUPS 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej UPS w połączeniu z bezpłatnym

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

POLITYKA PRYWATNOŚCI ORAZ POLITYKA PLIKÓW COOKIES W Sowa finanse

POLITYKA PRYWATNOŚCI ORAZ POLITYKA PLIKÓW COOKIES W Sowa finanse POLITYKA PRYWATNOŚCI ORAZ POLITYKA PLIKÓW COOKIES W Sowa finanse I. Definicje Niżej wymienione pojęcia użyte w Polityce prywatności lub Polityce Plików cookies należy rozumieć następująco: Administrator

Bardziej szczegółowo

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet JSP ciąg dalszy Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić JSP tags, Używanie tagów, Custom tags, JSP objests, Obiekty

Bardziej szczegółowo

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop. 2017 Spis treści Wstęp 11 Część I Skrypty PHP dynamiczne generowanie stron internetowych 15 Rozdział 1. Podstawy 17 Czym jest PHP? 17 Krótka

Bardziej szczegółowo

Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok

Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok Spółdzielnia Mieszkaniowa Słoneczny Stok szanuje prawo do prywatności Użytkowników serwisu sm-slonecznystok.pl. W szczególności dba o ochronę

Bardziej szczegółowo

Specyfikacja techniczna. mprofi Interfejs API

Specyfikacja techniczna. mprofi Interfejs API Warszawa 09.04.2015. Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 1 Specyfikacja techniczna mprofi Interfejs API wersja 1.0.2 WERSJA DATA STATUTS AUTOR 1.0.0 10.03.2015 UTWORZENIE DOKUMENTU

Bardziej szczegółowo

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ : Cookies Sesje Inne możliwości

Bardziej szczegółowo

Zmienne i stałe w PHP

Zmienne i stałe w PHP Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu

Bardziej szczegółowo

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.pl Serwer aplikacji Serwer aplikacji to: Serwer wchodzący w skład sieci komputerowej, przeznaczony

Bardziej szczegółowo

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat Ćwiczenie 1 Proszę napisać aplikację wykorzystującą serwlety i bazy danych, która umożliwi wyszukiwanie tytułów książek po nazwisku autora oraz autorów po tytule książki. Ćwiczenie

Bardziej szczegółowo

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji Wykład prowadzi Mikołaj Morzy CGI i serwlety Plan wykładu Metody konstrukcji logiki prezentacji Programy CGI Serwlety Java implementacja korzystanie z nagłówków obsługa zmiennych Cookies obsługa sesji

Bardziej szczegółowo

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Stosowanie ciasteczek (cookies)

Stosowanie ciasteczek (cookies) Stosowanie ciasteczek (cookies) Nasza strona używa plików cookies. Informujemy, że poruszając się po stronie wyrażasz zgodę na wykorzystywanie przez nas plików cookies. Istnieje możliwość korzystania ze

Bardziej szczegółowo

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1] JAVA wprowadzenie do programowania (3/3) [1] Czym jest aplikacja Java Web Start? Aplikacje JAWS są formą pośrednią pomiędzy apletami a aplikacjami Javy. Nie wymagają do pracy przeglądarki WWW, jednak mogą

Bardziej szczegółowo

Instrukcja do programu DoDHL 1.5

Instrukcja do programu DoDHL 1.5 Instrukcja do programu DoDHL 1.5 Program DoDHL 1.5 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej DHL w połączeniu z bezpłatnym

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

Cemarol Sp. z o.o. Polityka prywatności (pliki cookies) 1. Informacje ogólne.

Cemarol Sp. z o.o. Polityka prywatności (pliki cookies) 1. Informacje ogólne. Polityka prywatności (pliki cookies) 1. Informacje ogólne. Cemarol Sp. z o.o. 1. Operatorem Serwisu www.powiat-lebork.com jest Cemarol sp. z o.o. z siedzibą w Kobylnicy (76-251), Kobylnica, ul. Główna

Bardziej szczegółowo

Instrukcja do programu Przypominacz 1.6

Instrukcja do programu Przypominacz 1.6 Instrukcja do programu Przypominacz 1.6 Program Przypominacz 1.6 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do prowadzenia tzw. miękkiej windykacji poprzez wysyłanie kontrahentom

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje

Bardziej szczegółowo

C++. Æwiczenia zaawansowane

C++. Æwiczenia zaawansowane IDZ DO PRZYK ADOWY ROZDZIA SPIS TRECI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG C++. Æwiczenia zaawansowane Autor: Andrzej Stasiewicz ISBN: 83-7361-766-3 Format: B5, stron: 120 TWÓJ KOSZYK

Bardziej szczegółowo

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE

Budowa i oprogramowanie komputerowych systemów sterowania. Laboratorium 4. Metody wymiany danych w systemach automatyki DDE Budowa i oprogramowanie komputerowych systemów sterowania Laboratorium 4 Metody wymiany danych w systemach automatyki DDE 1 Wprowadzenie do DDE DDE (ang. Dynamic Data Exchange) - protokół wprowadzony w

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Aplikacje WWW Wprowadzenie

Aplikacje WWW Wprowadzenie Aplikacje WWW Wprowadzenie Beata Pańczyk na podstawie http://www.e-informatyka.edu.pl/ http://wazniak.mimuw.edu.pl/index.php?title=aplikacje_www Plan wykładu Składniki architektury WWW: klient HTTP, serwer

Bardziej szczegółowo

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja ZPKSoft WDoradca 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja 1. Wstęp ZPKSoft WDoradca jest technologią dostępu przeglądarkowego do zasobów systemu ZPKSoft Doradca.

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Języki programowania wysokiego poziomu. PHP cz.3. Formularze Języki programowania wysokiego poziomu PHP cz.3. Formularze Formularze Sposób przesyłania danych formularza do serwera zależy od wybranej metody HTTP: Metoda GET

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG Opracowano w Departamencie Informatyki i Administracji Bankowego Funduszu Gwarancyjnego Październik 2013 Spis treści: 1. Dostęp do strony portalu...

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite

Tomasz Boiński: 1. Pozycjonowanie stron i zastosowanie mod_rewrite Tomasz Boiński: 1 Pozycjonowanie stron i zastosowanie mod_rewrite Pozycjonowanie stron Promocja strony odbywa się poprzez umiejscowienie jej jak najwyżej w wynikach wyszukiwania Wyszukiwarki indeksują

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Polityka prywatności serwisu www.aran.com.pl

Polityka prywatności serwisu www.aran.com.pl Przedsiębiorstwo BudowlanoHandlowe Z.Niziński Polityka prywatności serwisu www.aran.com.pl 1. Informacje ogólne. Operatorem Serwisu [adres serwisu, np. www.blink.pl] jest [pełne dane rejestrowe] Serwis

Bardziej szczegółowo

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07 PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się

Bardziej szczegółowo

POLITYKA COOKIES. Definicje. Rodzaje wykorzystywanych Cookies

POLITYKA COOKIES. Definicje. Rodzaje wykorzystywanych Cookies POLITYKA COOKIES Niniejsza Polityka Cookies określa zasady przechowywania i dostępu do informacji na urządzeniach Użytkownika za pomocą plików Cookies, służących realizacji usług świadczonych drogą elektroniczną

Bardziej szczegółowo

Gatesms.eu Mobilne Rozwiązania dla biznesu

Gatesms.eu Mobilne Rozwiązania dla biznesu Mobilne Rozwiązania dla biznesu SPECYFIKACJA TECHNICZNA WEB API-USSD GATESMS.EU wersja 0.9 Opracował: Gatesms.eu Spis Historia wersji dokumentu...3 Bezpieczeństwo...3 Wymagania ogólne...3 Mechanizm zabezpieczenia

Bardziej szczegółowo

Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniach w następujący sposób:

Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniach w następujący sposób: Informacje ogólne. Operatorem Serwisu www.gops.gmina.swidnica.pl jest Gminny Ośrodek Pomocy Społecznej w Świdnicy, ul. B.Głowackiego 4, 58-100 Świdnica NIP: 884-18-46-403 REGON:005811915 Serwis realizuje

Bardziej szczegółowo

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013 e-biznes Wykład dla studentów Informatyki Stosowanej UJ 2012/2013 Michał Cieśla pok. 440a, email: michal.ciesla@uj.edu.pl konsultacje: środy 10-12 http://users.uj.edu.pl/~ciesla/ 1 Literatura B. Burke,

Bardziej szczegółowo

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG

Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG Portal SRG BFG Instrukcja korzystania z Portalu SRG BFG Opracowano w Departamencie Informatyki Bankowego Funduszu Gwarancyjnego Październik 2016 Spis treści: 1. Dostęp do strony Portalu... 3 1.1. Adres

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki

Bardziej szczegółowo

Instrukcja do programu Do7ki 1.0

Instrukcja do programu Do7ki 1.0 Instrukcja do programu Do7ki 1.0 Program Do7ki 1.0 pozwala w prosty sposób wykorzystać dane z systemu sprzedaży Subiekt GT do generowania listów przewozowych dla firmy kurierskiej SIÓDEMKA w połączeniu

Bardziej szczegółowo

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12 Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12 Wersja 3.0 02-03-2017 Spis treści Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów

Bardziej szczegółowo

INSTRUKCJA obsługi certyfikatów

INSTRUKCJA obsługi certyfikatów INSTRUKCJA obsługi certyfikatów dla użytkownika bankowości internetowej Pocztowy24 z wybraną metodą autoryzacji Certyfikat Spis treści 1. Wstęp... 3 1.1 Wymagania techniczne... 3 2. Certyfikat jako jedna

Bardziej szczegółowo

Jak ustawić cele kampanii?

Jak ustawić cele kampanii? Jak ustawić cele kampanii? Czym są cele? Jest to funkcjonalność pozwalająca w łatwy sposób śledzić konwersje wygenerowane na Twojej stronie www poprzez wiadomości email wysłane z systemu GetResponse. Mierzenie

Bardziej szczegółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Programowanie aplikacji sieci Ethernet Przykład 1 Na podstawie: Monk S.: Arduino dla początkujących, HELION, Gliwice 2014 2 Arduino z nakładką

Bardziej szczegółowo

MySQL. Æwiczenia praktyczne

MySQL. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG MySQL. Æwiczenia praktyczne Autor: Marek Nowakowski ISBN: 83-7197-884-7 Format: B5, stron: 114 TWÓJ KOSZYK DODAJ

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 1 Servlety

Architektury Usług Internetowych. Laboratorium 1 Servlety Architektury Usług Internetowych Laboratorium 1 Servlety Wstęp Celem laboratorium jest zapoznanie się z modelem klient-serwer (żądanieodpowiedź) na przykładzie serwletów. Kontener webowy Kontener webowy

Bardziej szczegółowo

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń. Spis wzorców Aplikacja Ajax Strona 73 Tworzenie Aplikacji Ajax złożonych aplikacji, które można uruchomić w dowolnej współczesnej przeglądarce internetowej. Bezpośrednie logowanie Strona 509 Uwierzytelnianie

Bardziej szczegółowo