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

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

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

Transkrypt

1 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 Część 2.: JavaServer Pages...15 Część 3.: Technologie pomocnicze...16 ZASTOSOWANE KONWENCJE...16 Podstawowa metoda...16 O WITRYNIE ROZDZIAŁ 1. PODSTAWOWE INFORMACJE O SERWLETACH I JAVA SERVER PAGES SERWLETY ZALETY SERWLETÓW W PORÓWNANIU Z TRADYCYJNYMI PROGRAMAMI CGI...19 Efektywność...19 Wygoda...20 Duże możliwości...20 Przenośność...20 Bezpieczeństwo...20 Niewielkie koszty JAVA SERVER PAGES ZALETY JSP...22 W porównaniu z Active Server Pages (ASP)...22 W porównaniu z PHP...22 W porównaniu z serwletami...22 W porównaniu z Server-Side Includes (SSI)...22 W porównaniu z językiem JavaScript...23 W porównaniu ze statycznym kodem HTML INSTALACJA I KONFIGURACJA...23 Zdobywanie oprogramowania do obsługi serwletów i dokumentów JSP...23 Zapamiętaj adres lub zainstaluj dokumentację Java Servlet oraz JSP API...25 Wskaż klasy używane przez kompilator Javy...25 Unix (C Shell)...26 Windows...26

2 Umieść klasy w pakietach...26 Skonfiguruj serwer...26 Numer portu...27 Zmienna środowiskowa JAVA_HOME...27 Ustawienia pamięci systemu DOS...27 Ustawienie CR/LF w serwerze Tomcat Uruchomienie serwera...28 Kompilacja i instalacja własnych serwletów...28 Tomcat...28 Tomcat JSWDK...29 Java Web Server ROZDZIAŁ 2. PIERWSZE SERWLETY PODSTAWOWA STRUKTURA SERWLETÓW PROSTY SERWLET GENERUJĄCY ZWYCZAJNY TEKST...31 Kompilacja i instalacja serwletów...32 Wywoływanie serwletów SERWLETY GENERUJĄCE KOD HTML UMIESZCZANIE SERWLETÓW W PAKIETACH...35 Tworzenie serwletów należących do konkretnego pakietu...36 Kompilacja serwletów należących do pakietów...36 Wywoływanie serwletów należących do pakietów PROSTE NARZĘDZIA POMOCNE PRZY TWORZENIU DOKUMENTÓW HTML CYKL ŻYCIOWY SERWLETÓW...40 Metoda init...40 Metoda service...41 Metody doget, dopost oraz doxxx...42 Interfejs SingleThreadModel...43 Metoda destroy PRZYKŁAD UŻYCIA PARAMETRÓW INICJALIZACYJNYCH PRZYKŁAD WYKORZYSTANIA INICJALIZACJI SERWLETU I DATY MODYFIKACJI STRONY TESTOWANIE SERWLETÓW WEBCLIENT: INTERAKTYWNA WYMIANA INFORMACJI Z SERWEREM WebClient...52 HttpClient...55 NetworkClient...56 SocketUtil...57 CloseableFrame...57 LabeledTextField...58 Interruptible...59 ROZDZIAŁ 3. OBSŁUGA ŻĄDAŃ: DANE PRZESYŁANE Z FORMULARZY ZNACZENIE INFORMACJI PRZESYŁANYCH Z FORMULARZY ODCZYTYWANIE DANYCH FORMULARZY W SERWLETACH PRZYKŁAD: ODCZYT TRZECH KONKRETNYCH PARAMETRÓW PRZYKŁAD: ODCZYT WSZYSTKICH PARAMETRÓW SERWIS REJESTRACJI ŻYCIORYSÓW FILTROWANIE ŁAŃCUCHÓW W POSZUKIWANIU ZNAKÓW SPECJALNYCH HTML...76 Implementacja filtrowania

3 3 Spis Treści Przykład...77 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 4.5 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...98 ROZDZIAŁ 6. GENERACJA 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 WYSZUKIWAWCZE ROZDZIAŁ 7. GENERACJA 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 Accept-Ranges Age Allow Cache-Control Connection Content-Encoding Content-Language Content-Length Content-Location Content-MD Content-Range Content-Type Date ETag Expires Last-Modified Location Pragma Refresh Retry-After Server Set-Cookie Trailer Transfer-Encoding Upgrade Vary Via Warning WWW-Authenticate TRWAŁE PRZECHOWYWANIE STANU SERWLETU I AUTOMATYCZNE ODŚWIEŻANIE STRON...123

4 7.4 STOSOWANIE TRWAŁYCH POŁĄCZEŃ HTTP WYKORZYSTANIE SERVLETÓW DO GENERACJI OBRAZÓW GIF ROZDZIAŁ 8. OBSŁUGA COOKIES KORZYŚCI STOSOWANIA COOKIES Identyfikacja użytkowników podczas trwania sesji na witrynach komercyjnych 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 servletach Tworzenie cookies Atrybuty cookies Umieszczanie cookies w nagłówkach odpowiedzi Odczytywanie cookies nadesłanych przez przeglądarkę PRZYKŁADY GENERACJI I ODCZYTYWANA COOKIES PROSTE NARZĘDZIA DO OBSŁUGI COOKIES Odnajdywanie cookie o określonej nazwie Tworzenie cookies o długim czasie istnienia INTERFEJS WYSZUKIWAWCZY 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ą Zakańczanie sesji Kodowanie adresów URL przesyłanych do przeglądarki SERVLET 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 towarów 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 Specjalna składnia skryptletów DEKLARACJE JSP

5 5 Spis Treści Specjalna składnia zapisu deklaracji PREDEFINIOWANE ZMIENNE ROZDZIAŁ 11. DYREKTYWA PAGE: STRUKTURALIZACJA GENEROWANYCH SERWLETÓW ATRYBUT IMPORT Katalogi służące do przechowywania własnych klas Przykład ATRYBUT CONTENTTYPE Generacja zwyczajnych dokumentów tekstowych Generacja 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 KORZYSTAJĄCYCH Z JAVA PLUG-IN Znacznik akcji jsp:plugin Znaczniki akcji jsp:param oraz jsp:params Znacznik akcji jsp:fallback Przykład: Generacja 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...238

6 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 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Ń Użycie 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 BĄDŹ DYNAMICZNYCH PRZYKŁAD: PREZENTACJA NIEPRZETWORZONYCH WYNIKÓW ZWRACANYCH PRZEZ SERWLETY LUB STRONY JSP PRZEKAZYWANIE ŻĄDAŃ ZE STRON JSP ROZDZIAŁ 16. FORMULARZE HTML JAK PRZESYŁANE SĄ DANE Z FORMULARZY HTML ELEMENT FORM TEKSTOWE ELEMENTY KONTROLNE Pola tekstowe VALUE Pola hasła Wielowierszowe pola tekstowe PRZYCISKI Przycisk SUBMIT

7 7 Spis Treści 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 POLA UKRYTE GRUPOWANIE ELEMENTÓW KONTROLNYCH OKREŚLANIE KOLEJNOŚCI PORUSZANIA SIĘ POMIĘDZY ELEMENTAMI FORMULARZY TESTOWY SERWER EchoServer ThreadedEchoServer NetworkServer ROZDZIAŁ 17. UŻYCIE 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 WYSZUKIWAWCZYCH PRZESYŁANIE DANYCH METODĄ GET I BEZPOŚREDNIE PRZETWARZANIE WYNIKÓW (TUNELOWANIE HTTP) Odczyt danych binarnych lub danych ASCII Odczyt serializowanych struktur danych Po stronie klienta Po stronie serwera PRZEGLĄDARKA ZAPYTAŃ WYKORZYSTUJĄCA SERIALIZACJĘ OBIEKTÓW I TUNELOWANIE PRZESYŁANIE DANYCH METODĄ POST I BEZPOŚREDNIE PRZETWARZANIE 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 Stworzenie 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Ń...373

8 18.8 ZARZĄDZANIE PULAMI POŁĄCZEŃ: STUDIUM ZAGADNIENIA WSPÓŁUŻYTKOWANIE PUL POŁĄCZEŃ Współużytkowanie pul połączeń przy wykorzystaniu kontekstu serwletu Współużytkowanie pul połączeń przy wykorzystaniu klas singleton DODATEK A. KRÓTKI PRZEWODNIK PO SERWLETACH I JSP A.1 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 Standardowe katalogi serwera JSWDK Standardowe katalogi serwera Java Web Server A.2 PIERWSZE SERWLETY Prosty serwlet Instalacja serwletów Uruchamianie serwletów Cykl życiowy serwletów A.3 OBSŁUGA ŻĄDAŃ: DANE PRZESYŁANE Z FORMULARZY Odczyt parametrów Przykład serwletu Przykład formularza Filtrowanie znaków specjalnych HTML A.4 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 A.5 DOSTĘP DO STANDARDOWYCH ZMIENNYCH CGI Możliwości, które nie zostały opisane gdzie indziej Odpowiedniki zmiennych CGI dostępne w serwletach A.6 GENERACJA 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 A.7 GENERACJA ODPOWIEDZI: NAGŁÓWKI ODPOWIEDZI PROTOKOŁU HTTP Generacja dowolnych nagłówków Generacja najczęściej używanych nagłówków Najczęściej używane nagłówki odpowiedzi protokołu HTTP Generacja obrazów GIF przez serwlety A.8 OBSŁUGA COOKIES Typowe zastosowania cookies Problemy napotykane przy stosowaniu cookies Ogólny sposób użycia cookies Metod do obsługi cookies A.9 ŚLEDZENIE SESJI Pobieranie informacji o sesji getvalue

9 9 Spis Treści Kojarzenie informacji z sesją putvalue Metody interfejsu HttpSession Kodowanie adresów URL A.10 ELEMENTY SKRYPTOWE JSP Typy elementów skryptowych Tekst szablonu Predefiniowane zmienne A.11 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 Atrybut errorpage Atrybut iserrorpage Atrybut language Zapis XML-owy A.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 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 A.13 WYKORZYSTANIE KOMPONENTÓW JAVABEANS W DOKUMENTACH JSP Podstawowe wymagania jakie należy spełnić by klasa była komponentem 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 A.14 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 A.15 INTEGRACJA SERWLETÓW I DOKUMENTÓW JSP Opis ogólny Składnia służąca do przekazania żądania Przekazywanie żądań do zwyczajnych dokumentów HTML Tworzenie globalnie dostępnych komponentów JavaBeans Tworzenie komponentów JavaBeans dostępnych w sesji...406

10 Interpretacja względnych adresów URL na stronie docelowej Alternatywne sposoby pobierania obiektu RequestDispatcher (wyłącznie Java Servlet 2.2)..406 Dołączenie danych statycznych lub dynamicznych Przekazywanie żądań ze stron JSP A.16 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 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 Internet Explorerze A.17 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 przetwarzanie wyników (tunelowanie HTTP) Przesyłanie serializowanych danych: Kod apletu Przesyłanie serializowanych danych: Kod serwletu Przesyłanie danych metodą POST i bezpośrednie przetwarzanie wyników (tunelowanie HTTP) Pomijanie serwera HTTP A.18 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ń

11 Podziękowania Wiele osób pomagało mi podczas tworzenia tej książki. Bez ich wsparcia wciąż pisałbym jej trzeci rozdział. John Guthrie, Ammy Karlson, Rich Slywczak oraz Kim Topley dostarczyli mi cennych technicznych informacji, z których korzystałem niemal we wszystkich rozdziałach. Innymi osobami, które wskazywały popełnione błędy oraz udzielały cennych sugestii są: Don Aldridge, Camille Bell, Ben Benokraitis, Carl Burnham, Adrew Burton, Rick Cannon, Kevin Cropper, Chip Downs, Frank Erickson, Payam Fard, Daniel Goldman, Rob Gordon, Andy Gravatt, Jeff Hall, Russell Holley, David Hopkins, Lis Immer, Herman Ip, Troung Le, Frank Lewis, Tanner Lovelace, Margaret Lyell, Paul McNamee, Mike Oliver, Barb Ridenour, Himanso Sahni, Bob Samson, Ron Tosh, Tsung-Wen Tsai, Peggy Sue Vickers oraz Maureen Knox Yencha. Mam nadzieję, że dobrze wykorzystałem ich rady. Mary Lou Eagle Eye 1 Nohr odszukała błędnie umieszczone przecinki, dziwne wyrażenia, błędy typograficzne oraz niespójności gramatycznie. Jej praca sprawiła, że książka ta stała się znacznie lepsza. Jonnne Anzalone stworzyła końcową wersję niniejszej książki. Joanne wykonała wspaniałą pracę, niezależnie od zmian wprowadzanych przeze mnie w ostatniej chwili. Ralph Semmel dostarczył pomocnego środowiska pracy i elastycznego harmonogramu, oraz interesujących projektów serwletów i stron JSP. Greg Doench z wydawnictwa Prentice Hall od samego początku wierzył w tę książkę i zachęcał mnie do jej napisania. Rachel Borden przekonała do niej także wydawnictwo Sun Microsystems Press. Dziękuje im wszystkim. Przede wszystkim chciałbym podziękować B.J., Lindsay oraz Nathanowi za cierpliwość dla mojego śmiesznego terminarza oraz ciągłego wykorzystania komputera gdy chcieli na nim popracować lub pograć. Bóg pobłogosławił mnie, dając mi wspaniałą rodzinę. O autorze Marty Hall jest starszym specjalistą komputerowym w Research and Technology Development Center w Laboratorium Fizyki Stosowanej na Uniwersytecie Johna Hopkinsa. Specjalizuje się w wykorzystaniu języka Java oraz technologiach związanych w WWW. Marty uczy także języka Java oraz programowania aplikacji WWW na Uniwersytecie Johna Hopkinsa w ramach programu kursów dokształcających, gdzie zajmuje się zagadnieniami przetwarzania rozproszonego oraz technologii internetowych. Jeśli tylko ma okazję, prowadzi także krótkie kursy poświęcone serwletom, JSP oraz innym technologiom związanym z językiem Java. Marty jest także autorem książki Core Web Programming, wydanej przez Wydawnictwo Prentice Hall w 1998 roku. Można się z nim skontaktować pisząc na następujący adres: Reseach and Technology Development Center The Johns Hopkins University Applied Phisics Laboratory Johns Hopkins Road Laurel, MD Eagle Eye Orle oko

12 Wprowadzenie Na początku 1996 roku zacząłem używać języka Java w większości moich projektów programistycznych. Napisałem kilka programów CGI i w niewielkim stopniu zajmowałem się także wczesnymi wersjami serwletów, jednak w przeważającej mierze tworzyłem aplikacje działające po stronie klienta. Jednak w ciągu ostatnich kilku lat coraz większy nacisk kładziono na programy działające po stronie serwera i z tego względu poważniej zająłem się serwletami oraz technologią JavaServer Pages. Zeszłego roku zainteresowanie tymi technologiami programistów, firm programistycznych oraz twórców specyfikacji platformy języka Java, wzrosło w ogromnym stopniu. Wzrost zainteresowania tymi technologiami jest tak duży, iż w szybkim tempie stają się one standardowym narzędziem do tworzenia dynamicznych aplikacji WWW oraz internetowych programów umożliwiających korzystania z baz danych i aplikacji działających na serwerze. Niestety, bardzo trudno było jednak znaleźć dobre, praktyczne informacje dotyczące tworzenia serwletów oraz JSP. Znalazłem trochę książek poświęconych serwletom, jednak tylko kilka z nich zawierało informacje o najnowszych wersjach specyfikacji, zaawansowanych technikach i odzwierciedlało doświadczenia nabyte podczas realizacji realnie wykorzystywanych projektów. Spośród tych kilku książek, jeśli któraś z nich w ogóle opisywała zagadnienia związane z JSP, to dotyczyły one specyfikacji JSP 1.0, nigdy JSP 1.1. Jednak w wielu sytuacjach JSP znacznie lepiej nadaje się do rozwiązania problemu niż serwlety; a zatem, cóż była by warta książka o servletach, która nie opisywałaby także JSP? W ciągu kilku ostatnich miesięcy na rynku pojawiło się nieco więcej dobrych książek poświęconych JSP. Jednak znaczna większość z nich w ogóle nie omawia serwletów. Ale czy to ma sens? Przecież integralną częścią technologii JavaServer Pages jest wykorzystanie elementów skryptowych do stworzenia kodu serwletu. A zatem, bez dogłębnej znajomości zasad działania i tworzenia serwletów, nie można efektywnie wykorzystywać JSP. Poza tym, większość działających na Internecie witryn nigdy nie wykorzystuje tylko jednej z tych technologii, lecz obie jednocześnie. I w końcu ostatnia sprawa. Podczas prowadzanie kursów w ramach dokształcających na Uniwersytecie Johna Hopkinsa zauważyłem, że bardzo niewielu spośród moich słuchaczy (których większość stanowili profesjonalni programiści) znała zagadnienia związane z protokołem HTTP 1.1, działaniem formularzy HTML oraz obsługą JDBC czyli trzema kluczowymi technologiami pomocniczymi. Zmuszanie tych osób od kupowania książek poświęconych każdemu z tych zagadnień było bezsensowne, gdyż w tym przypadku ilość książek, którą programista musiałby kupić i przeczytać w celu tworzenia poważnych aplikacji wykorzystujących serwlety i JSP, wzrosłaby do pięciu. A zatem, w połowie 1999 roku, stworzyłem krótki kurs tworzenia serwletów oraz stron JSP poparty kilkunastoma przykładami, opublikowałem go na WWW i spróbowałem przedstawić ten sam materiał na kilku spośród prowadzonych przeze mnie kursach. Reakcja była oszałamiająca. Już po kilku miesiącach opublikowany przez mnie kurs odwiedzało kilkaset osób dziennie, nie wspominając w ogóle o setkach próśb o poszerzenie zamieszczonych informacji. W końcu pogodziłem się z nieuchronnym losem i zacząłem pisać. Niniejsza książka jest efektem mej pracy. Mam nadzieję, że okaże się przydatna.

13 13 Wprowadzenie Prawdziwy kod dla prawdziwych programistów Ta książka przeznaczona jest dla poważnych programistów. Ta książka nie wychwala potencjału internetowego handlu ani sposobów w jaki internetowe aplikacje mogą zrewolucjonizować Twoją firmę. Zamiast tego jest to praktyczna książka przeznaczona dla programistów, którzy już doskonale rozumieją konieczność tworzenia dynamicznych witryn WWW, a jej zadaniem jest pokazanie jak należy to robić w poprawny sposób. Prezentując sposoby tworzenia dynamicznych witryn WWW starałem się zilustrować najważniejsze używane techniki i ostrzec Cię przed najczęściej napotykanymi problemami. Jednocześnie wykorzystałem bardzo dużo praktycznych przykładów, na przykład ponad sto klas Javy. Starałem się podać szczegółowe przykłady dla wszystkich najważniejszych i najczęściej wykorzystywanych możliwości, zamieścić podsumowania opisujące możliwości rzadziej wykorzystywane i wskazać (dostępne na WWW) źródła informacji o narzędziach programistycznych (API) umożliwiających zaimplementowanie możliwości najrzadziej stosowanych. Nie jest to także książka, która pobieżnie, na wysokim poziomie, omawia wiele różnych technologii. Choć nie roszczę sobie pretensji, aby książka ta była ostatecznym źródłem informacji na wszystkie omawiane tematy (istnieje przykładowo kilka, podobnej wielkości, książek poświęconych wyłącznie JDBC), to jednak, jeśli już opisuję w niej jakieś zagadnienie, to robię to na tyle szczegółowo byś mógł rozpocząć tworzenie programów nadających się do praktycznego zastosowania. Jedynym wyjątkiem od tej reguły jest sam język Java. Oczekuję bowiem, że będziesz znał podstawy jego wykorzystania. Jeśli nie znasz Javy, to będziesz musiał sięgnąć po jakąś dobrą książkę, która nauczy Cię zasad programowania w tym języku, taką jak Java 1.1 wydaną przez Wydawnictwo Helion. Muszę Cię jednak ostrzec. Nikt nie staje się wspaniałym programistą czytając książki. Prócz lektury konieczne jest także pisanie programów. Im więcej ich stworzysz tym lepiej. W każdym rozdziale radzę, abyś zaczął od napisania krótkiego programu lub zmodyfikowania jednego z przykładów podanych wcześniej, a następnie spróbował własnych sił tworząc bardziej skomplikowany projekt. Pomiń fragmenty książki omawiające zagadnienia, których na razie nie planujesz używać i wróć do nich później, gdy będziesz gotów je wypróbować. Jeśli będziesz postępował w ten sposób, szybko powinieneś wyrobić sobie umiejętność rozwiązywania praktycznych problemów, które były głównym powodem sięgnięcia po tę książkę. Powinieneś być w stanie określić gdzie należy użyć serwletów, gdzie lepszym rozwiązaniem będzie zastosowanie JSP, lub kiedy należy użyć kombinacji obu tych technologii. Powinieneś nie tylko być w stanie generować dokumenty HTML, lecz rozumieć jak można przekazywać informacje innych typów, na przykład obrazy GIF lub arkusze kalkulacyjne programu Excel. Powinieneś także, na tyle dobrze rozumieć protokół HTTP 1.1, aby móc wykorzystywać jego możliwości do zwiększenia efektywności działania tworzonych stron. Nie powinieneś także obawiać się tworzenia aplikacji WWW czy to w formie formularzy HTML czy też apletów stanowiących interfejs pozwalający użytkownikom na korzystanie z korporacyjnych baz danych. Powinieneś także być w stanie implementować skomplikowane zachowania w formie komponentów JavaBeans lub bibliotek własnych znaczników JSP i zdecydować kiedy należy użyć tych komponentów bezpośrednio, a kiedy rozpoczynać przetwarzanie żądań za pośrednictwem serwletów, które następnie wygenerują stronę prezentującą wyniki. Czytając tę książkę powinieneś także mieć sporo zabawy. A potem zasłużysz na podwyżkę. W jaki sposób zorganizowana jest ta książka Książka została podzielona na trzy części: Serwlety, Java Server Pages oraz Technologie pomocnicze.

14 Część 1.: Serwlety Część 1. obejmuje tworzenie serwletów według specyfikacji 2.1 oraz 2.2. Choć specyfikacja 2.2 (oraz specyfikacja JSP 1.1) jest elementem Java 2 Platform, Enterprise Edition, to jednak wiele komercyjnych produktów korzysta jeszcze z wcześniejszych specyfikacji. A zatem ważne jest, aby rozumieć różnice występujące pomiędzy nimi. Poza tym, choć kod serwletów może być przenoszony i wykorzystywany na wielu różnych serwerach i systemach operacyjnych, to jednak proces instalacji i konfiguracji serwerów nie jest standaryzowany. Z tego względu podałem szczegółowe informacje dotyczące Apache Tomcata, JavaServer Web Development Kit (JSWDK) firmy Sun oraz Java Web Servera. Poniżej podałem listę omawianych zagadnień dotyczących serwletów: kiedy i dlaczego należy stosować serwlety, zdobycie i instalacja potrzebnego oprogramowania, podstawowa struktura serwletów, proces kompilacji, instalacji oraz wywoływania serwletów, generacja kodu HTML z poziomu serwletu, cykl życiowy serwletu, daty modyfikacji stron oraz pamięć podręczna przeglądarek, strategie testowania serwletów, obsługa żądań GET oraz POST przez jeden serwlet, internetowa usługa przesyłania życiorysów, odczytywanie nagłówków żądań HTTP w serwletach, przeznaczenie każdego z nagłówków żądań HTTP 1.1, redukcja czasu pobierania stron poprzez ich kompresję, ograniczanie dostępu za pomocą serwletów chronionych hasłem, odpowiedniki każdej ze standardowych zmiennych środowiskowych CGI, wykorzystanie kodów statusu HTTP, znaczenie każdej z wartości kodów statusu HTTP 1.1, interfejs użytkownika obsługujący przeszukiwanie WWW, określanie kodów odpowiedzi w serwletach, znaczenie każdego z nagłówków odpowiedzi HTTP 1.1, najczęściej używane typy MIME, serwlet wykorzystujący nagłówek Refresh w celu cyklicznego dostępu do długotrwałych obliczeń, serwlety wykorzystujące trwałe połączenia HTTP, generacja obrazów GIF z poziomu serwletów, przeznaczenie i problemy wiążące się z wykorzystaniem cookies, API do obsługi cookies, narzędzia ułatwiające obsługę cookies, konfigurowalny interfejs użytkownika do przeszukiwania WWW, zastosowanie śledzenia sesji, API do śledzenia sesji dostępne w serwletach, wykorzystanie sesji do stworzenia liczników odwiedzin dla poszczególnych użytkowników, internetowy sklep wykorzystujący śledzenie sesji, koszyki oraz dynamiczne generowanie stron na podstawie katalogu. 14

15 15 Wprowadzenie Część 2.: JavaServer Pages JSP stanowi bardzo wygodną alternatywę dla serwletów, w szczególności w przypadku generacji stron, których zawartość w znacznej części nie ulega zmianie. W drugiej części książki omówię technologię JavaServer Pages w wersji 1.0 oraz 1.1. Oto lista omawianych zagadnień dotyczących JSP: kiedy i dlaczego należy używać JavaServer Pages, w jaki sposób wywoływane są strony JSP, stosowanie rozszerzeń JSP, skryptletów oraz deklaracji, predefiniowane zmienne, których można używać w wyrażeniach i skryptletach, dyrektywa page, określanie importowanych klas, określanie typu MIME dla strony, generacja arkuszy kalkulacyjnych programu Excel, kontrola modelu wątkowego, wykorzystanie sesji, określanie wielkości i działania bufora wyjściowego, określanie stron służących do obsługi błędów JSP, składnia dyrektyw zgodna z XML, dołączanie plików JSP w czasie gdy strona główna jest przekształcana do postaci serwletu, dołączanie plików HTML lub plików tekstowych w momencie przesyłania żądania, dołączanie apletów wykorzystujących Java Plug-In, wykorzystanie JavaBeans w stronach JSP, tworzenie i dostęp do komponentów JavaBeans, jawne określanie właściwości komponentów, kojarzenie właściwości komponentów z parametrami wejściowymi, automatyczna konwersja typów właściwości komponentu, współużytkowanie komponentów przez wiele stron JSP i serwletów, tworzenie bibliotek znaczników JSP, klasy obsługi znaczników, pliki opisu biblioteki znaczników, dyrektywa taglib JSP, proste znaczniki, znaczniki posiadające atrybuty, znaczniki posiadające zawartość pomiędzy znacznikiem otwierającym i zamykającym, znaczniki modyfikujące swą zawartość, znaczniki pętli, znaczniki zagnieżdżone, integracja serwletów oraz JSP, przekazywanie żądań z serwletów do zasobów statycznych i dynamicznych, wykorzystanie serwletów do konfiguracji komponentów JavaBeans wykorzystywanych na stronach JSP, internetowe biuro podróży wykorzystujące serwlety oraz JSP, wykorzystanie wyników wykonania stron JSP w serwletach, przekazywanie żądań ze stron JSP.

16 Część 3.: Technologie pomocnicze W trzeciej części książki opisuję trzy zagadnienia bardzo często wykorzystywane wraz z serwletami oraz JSP formularze HTML, aplety komunikujące się z serwletami oraz JDBC. Poniżej przedstawiłem listę zagadnień omawianych w tej części książki: przesyłanie danych z formularzy, tekstowe elementy formularzy, przyciski, pola wyboru oraz przyciski opcji, listy rozwijane oraz listy, element sterujący umożliwiający przesyłanie plików na serwer, mapy odnośników obsługiwane po stronie serwera, pola ukryte, grupowanie elementów formularzy, kolejność elementów, serwer WWW służący do testowania formularzy, przesyłanie danych z apletu żądaniem GET i wyświetlanie ich w przeglądarce, wysyłanie danych żądaniem GET i przetwarzanie ich przez ten sam aplet (tunelowanie HTTP), wykorzystanie serializacji obiektów w celu przekazywania złożonych struktur danych pomiędzy apletami i serwletami, wysyłanie danych żądaniem typu POST i przetwarzanie ich przez ten sam aplet, aplety, które nie wykorzystują serwerów WWW. 16 Zastosowane konwencje W tekście niniejszej książki kody programów oraz generowane przez nie wyniki są przedstawiane czcionką o stałej szerokości. Na przykład, abstrakcyjnie omawiając programy działające po stronie serwera i wykorzystujące protokół HTTP, mogę używać takich wyrażeń jak serwlety HTTP lub, po prostu, serwlety. Gdy jednak piszę HTTPServlet, to mam na myśli konkretną klasę Javy. Informacje wprowadzane przez użytkownika w wierszu poleceń prezentowane są pogrubioną czcionką, natomiast generowane komunikaty mogą być bądź to ogólne (oznaczane jako Prompt>) bądź też wskazywać rodzaj używanego systemu operacyjnego (na przykład DOS>). Przykładowo, poniższy fragment tekstu oznacza, iż wykonanie polecenia java PewienProgram na dowolnej platformie systemowej spowoduje wygenerowanie wyników o postaci Odpowiednie wyniki : Prompt> java PewienProgram Odpowiednie wyniki Ważne, standardowe techniki są w tekście książki oznaczane w specjalny, przedstawiony poniżej, sposób: Podstawowa metoda Zwróć szczególną uwagę na fragmenty oznaczone jako Podstawowa metoda. Zawierają one informacje o technikach, które powinne być stosowane zawsze lub prawie zawsze. Notatki oraz ostrzeżenia są oznaczane w podobny sposób.

17 17 Wprowadzenie O witrynie WWW Istnieje specjalna witryna WWW poświęcona niniejszej książce, jej adres to Korzystanie z tej witryny jest bezpłatne, a można na niej znaleźć: kody źródłowe wszystkich przykładów podanych w niniejszej książce (można ich używać w nieograniczony sposób bez konieczności jakiejkolwiek rejestracji), internetową dokumentację API (w formacie Javadoc) wszystkich klas stworzonych w książce, aktualne adresy witryny umożliwiających pobranie oprogramowania, które można wykorzystać przy tworzeniu serwletów i stron JSP, informacje o zniżkach przy zakupie niniejszej książki, doniesienia dotyczące kursów tworzenia serwletów i stron JSP, informacje dotyczące nowych wydań i aktualizacji niniejszej książki.

18 Rozdział 1. Podstawowe informacje o serwletach i Java Server Pages Ten rozdział zawiera krótką prezentację serwletów oraz JavaServer Pages (JSP) i przedstawia zalety każdej z tych technologii. Podałem w nim także informacje o tym gdzie zdobyć i jak skonfigurować oprogramowanie konieczne do tworzenia serwletów oraz dokumentów JSP. 1.1 Serwlety Serwlety to odpowiedź technologii związanych z językiem Java na programy CGI (Common Gateway Interface). Serwlety są programami wykonywanymi na serwerze WWW. Stanowią one warstwę pośrednią pomiędzy żądaniami przesyłanymi przez przeglądarkę WWW lub inny program używający protokołu HTTP oraz bazami danych bądź aplikacjami wykonywanymi na serwerze HTTP. Ich zadaniem jest: 1) Odczytywanie wszelkich danych przesyłanych przez użytkownika. Dane te są zazwyczaj wprowadzane w formularzu umieszczonym na stronie WWW, jednak mogą także pochodzić z apletu Javy lub innego programu używającego protokołu HTTP. 2) Odszukanie wszelkich innych informacji dotyczących żądania, umieszczonych w żądaniu HTTP. Informacje te zawierają szczegółowe dane dotyczące możliwości przeglądarki, cookies, nazwy komputera na którym działa program, i tak dalej. 3) Generacja wyników. Ten proces może wymagać wymiany informacji z bazą danych, wykonania wywołania RMI lub CORBA, uruchomienia aplikacji bądź bezpośredniego obliczenia wyników. 4) Sformatowanie wyników wewnątrz dokumentu. W większości przypadków sformatowanie wyników polega na umieszczeniu ich wewnątrz dokumentu HTML. 5) Podanie odpowiednich parametrów odpowiedzi HTTP. Oznacza to przekazanie do przeglądarki informacji określających typ przesyłanego dokumentu (na przykład: HTML), podanie cookies, określenia parametrów zarządzających przechowywaniem strony w pamięci podręcznej przeglądarki, itp. 6) Wysłanie dokumentu z powrotem do użytkownika. Dokument może zostać przesłany w formacie tekstowym (HTML), binarnym (obrazy GIF), a nawet w postaci skompresowanej (na przykład gzip) modyfikującej dokument zapisany w innym formacie.

19 19 Rozdział 1. Podstawowe informacje o serwletach i Java Server Pages Wiele nadsyłanych żądań można obsłużyć przesyłając gotowe dokumenty. Żądania tego typu są obsługiwane przez serwer bez wykonywania serwletów. Jednak w wielu innych sytuacjach statyczne wyniki nie są wystarczające, a wynikowa strona musi zostać wygenerowana osobno dla każdego żądania. Istnieje wiele przyczyn, dla których strony WWW muszą być generowane dynamicznie. Oto niektóre z nich: Strona WWW generowana jest na podstawie informacji przesłanych przez użytkownika. Na przykład, strony generowane przez mechanizmy wyszukiwawcze oraz strony zawierające potwierdzenia zamówień składanych w sklepach internetowych budowane są na podstawie konkretnego żądania. Strona WWW jest tworzona na podstawie informacji, które często ulegają zmianie. Na przykład witryny zawierające prognozy pogody lub serwisy informacyjne mogą generować strony dynamicznie lub zwracać poprzednio stworzoną stronę jeśli jeszcze jest aktualna. Przy tworzeniu strony WWW wykorzystywane są informacje pochodzące z korporacyjnej bazy danych lub innych zasobów dostępnych na serwerze. Na przykład, witryna służąca do handlu internetowego może wykorzystywać serwlety w celu stworzenia strony prezentującej listę dostępnych artykułów wraz z informacjami o ich cenach i możliwości zakupu. W zasadzie wykorzystanie serwletów nie ogranicza się w cale do WWW lub serwerów aplikacji obsługujących żądania HTTP. Można ich także używać w serwerach wszelkich innych typów. Przykładowo, serwlety można umieścić w serwerze pocztowym lub serwerze FTP, rozszerzając w ten sposób ich możliwości funkcjonalne. Jednak w praktyce ten sposób wykorzystania serwletów nie zyskał popularności; dlatego też, w niniejszej książce, ograniczę się do omówienia serwletów HTTP. 1.2 Zalety serwletów w porównaniu z tradycyjnymi programami CGI Serwlety są bardziej efektywne, łatwiejsze w użyciu, bezpieczniejsze i tańsze od tradycyjnych programów CGI oraz technologii zbliżonych do CGI. Poza tym, mają większe możliwości oraz zapewniają lepszą przenaszalność. Efektywność W przypadku wykorzystania tradycyjnej technologii CGI, dla każdego żądania HTTP tworzony jest nowy proces. Jeśli sam program CGI jest stosunkowo krótki, to przeważającą część wykonania programu może stanowić uruchomienie procesu. W przypadku serwletów, wirtualna maszyna Javy działa bez przerwy i obsługuje wszystkie nadsyłane żądania wykorzystując do tego niewielkie wątki Javy, a nie procesy systemu operacyjnego, które wykorzystują wiele zasobów systemowych. Co więcej, w przypadku korzystania z tradycyjnych programów CGI, jeśli jednocześnie zostanie nadesłanych N żądań skierowanych do tego samego programu, jego kod zostanie N razy załadowany do pamięci. W przypadku serwletów, w takiej sytuacji zostanie utworzonych N wątków, lecz wykorzystywana będzie wyłącznie jedna kopia klasy serwletu. I ostatnia sprawa. Gdy program CGI skończy obsługiwać żądanie, zostanie on zakończony. Utrudnia to przechowywanie wyników obliczeń w pamięci podręcznej, utrzymywanie otwartych połączeń z bazami danych oraz wykonywanie wszelkich innych optymalizacji bazujących na trwałych informacjach. Serwlety natomiast pozostają w pamięci nawet po zakończeniu obsługi żądania,

20 dzięki czemu przechowanie dowolnie złożonych danych pomiędzy poszczególnymi żądaniami staje się bardzo proste. Wygoda Serwlety dysponują rozbudowanymi narzędziami służącymi do automatycznego przetwarzania i dekodowania danych przesyłanych z formularzy HTML, odczytywania i określania nagłówków HTTP, obsługi cookies, śledzenia sesji oraz wieloma innymi narzędziami wysokiego poziomu. Poza tym znasz już język programowania Java, po co zatem miałbyś się uczyć Perla? Nie trzeba Cię także przekonywać, że dzięki użyciu języka Java oraz jego technologii można tworzyć bezpieczniejszy kod zapewniający większe możliwości wielokrotnego użycia, w porównaniu z analogicznym kodem napisanym w języku C++. Po co zatem miałbyś wracać do tworzenia programów działających na serwerze pisanych w C++? Duże możliwości Serwlety udostępniają kilka możliwości, których implementacja w tradycyjnych programach CGI jest wyjątkowo trudna, lub wręcz niemożliwa. Serwlety mogą bezpośrednio wymieniać informacje z serwerami WWW. Programy CGI nie dysponują taką możliwością, a przynajmniej nie bez wykorzystania specjalnego API (interfejsu programistycznego) serwera. Przykładowo, możliwość bezpośredniej komunikacji z serwerem ułatwia translację względnych adresów URL na ścieżki dostępu do konkretnych plików. Kilka serwletów może także korzystać ze wspólnych danych, co znacznie ułatwia implementację wielokrotnego wykorzystywania połączeń z bazami danych oraz innych, podobnych rozwiązań optymalizujących wykorzystanie zasobów. Serwlety mogą także przechowywać informacje pomiędzy kolejnymi żądaniami, dzięki czemu ułatwiają wykorzystanie takich technik jak śledzenie sesji oraz przechowywanie wyników poprzednich obliczeń. Przenośność Serwlety są pisane w języku Java i wykorzystują standardowy interfejs programistyczny. W rezultacie, serwlety napisane z myślą o, dajmy na to, I-Planet Enterprise Serverze, mogą działać, w zasadzie, w niezmienionej postaci także na serwerze Apache, Microsoft Internet Information Serverze (IIS), IBM WebSphere, czy też serwerze WebStar firmy StarNine. Na przykład, niemal wszystkie przykładowe serwlety oraz dokumenty JSP przedstawione w niniejszej książce były wykonywane na Java Web Serverze firmy Sun, serwerze Tomcat opracowanym przez fundację Apache Software oraz na JavaServer Web Development Kit firmy Sun, i to bez wprowadzania jakichkolwiek zmian w kodzie. Wiele z przykładów zostało także przetestowanych na serwerach BEA WebLogic oraz IBM WebSphere. De facto, serwlety są obsługiwane bezpośrednio lub za pośrednictwem odpowiednich plug-inów przez niemal wszystkie najpopularniejsze serwery WWW. Aktualnie serwlety stanowią część Java 2 Platform, Enterprise Edition (J2EE; patrz dzięki czemu przemysłowe wsparcie serwletów stanie się jeszcze większe. Bezpieczeństwo Jedno z podstawowych zagrożeń istniejących w tradycyjnych programach CGI wynikało z faktu, iż programy te często były wykonywane przez powłoki systemowe ogólnego przeznaczenia. Z tego względu programiści tworzący programy CGI musieli zwracać szczególną uwagę na odnajdywanie i eliminację znaków traktowanych przez powłokę systemową w sposób specjalny, 20

Java Servlet i Java Server Pages

Java Servlet i Java Server Pages 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

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

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

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

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

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

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

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

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

Pakiet webmathematica jako narzędzie wspomagające proces dydaktyczny przedmiotu mechanika. Łukasz Maciejewski, Wojciech Myszka, Stanisław Piesiak

Pakiet webmathematica jako narzędzie wspomagające proces dydaktyczny przedmiotu mechanika. Łukasz Maciejewski, Wojciech Myszka, Stanisław Piesiak Pakiet webmathematica jako narzędzie wspomagające proces dydaktyczny przedmiotu mechanika Łukasz Maciejewski, Wojciech Myszka, Stanisław Piesiak Mathematica Pakiet obliczeniowy do rozwiązywania zagadnień

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

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

OpenLaszlo. OpenLaszlo

OpenLaszlo. OpenLaszlo OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX. Protokół HTTP 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX. 1 Usługi WWW WWW (World Wide Web) jest najpopularniejszym sposobem udostępniania

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP. Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, obsługa formularzy oraz zmiennych

Bardziej szczegółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

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

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

Technologie internetowe

Technologie internetowe Protokół HTTP Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Spis treści Protokół HTTP Adresy zasobów Jak korzystać z telnet? Metody protokołu HTTP Kody odpowiedzi Pola nagłówka HTTP - 2 - Adresy

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

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci UNIX: architektura i implementacja mechanizmów bezpieczeństwa Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci Plan prezentacji: Wprowadzenie do struktury systemów rodziny UNIX

Bardziej szczegółowo

Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie

Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie 1. Instalacja w zwykłym skrypcie PHP Instalacja PHP Hypercachera Refresher Standard i PHP

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

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

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

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

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

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

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

Aplikacje internetowe - laboratorium

Aplikacje internetowe - laboratorium Aplikacje internetowe - laboratorium PHP Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej opartej o język PHP. Aplikacja ilustruje takie mechanizmy jak: obsługa formularzy oraz obsługa

Bardziej szczegółowo

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja Instytut Telekomunikacji Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska, marzec 2015 Wprowadzenie Ćwiczenie jest wykonywane

Bardziej szczegółowo

Aplikacje internetowe - laboratorium

Aplikacje internetowe - laboratorium Aplikacje internetowe - laboratorium Administracja serwerem aplikacji. Celem ćwiczenia jest zainstalowanie i administracja prostym serwerem aplikacji. Ćwiczenie zostanie wykonane przy użyciu popularnego

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

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych KARTA PRZEDMIOTU Nazwa przedmiotu/modułu: Nazwa angielska: Kierunek studiów: Poziom studiów: Profil studiów Jednostka prowadząca: Programowanie aplikacji internetowych Web application development edukacja

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

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

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

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

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia Bezpieczeństwo systemów komputerowych Java i JavaScript mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Java i JavaScript używane w celu dodania cech interaktywności do stron WWW mogą

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

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010 System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy

Bardziej szczegółowo

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Deduplikacja danych. Zarządzanie jakością danych podstawowych Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

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

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP + bazy danych Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, współpraca PHP z bazami

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

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika) IBM SPSS Statistics Wersja 22 Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika) Spis treści Instrukcja instalacji.......... 1 Wymagania systemowe........... 1 Kod autoryzacji.............

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Programowanie internetowe

Programowanie internetowe Programowanie internetowe Wykład 1 HTML mgr inż. Michał Wojtera email: mwojtera@dmcs.pl Plan wykładu Organizacja zajęć Zakres przedmiotu Literatura Zawartość wykładu Wprowadzenie AMP / LAMP Podstawy HTML

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

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i

Bardziej szczegółowo

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy

Bardziej szczegółowo

Pracownia internetowa w szkole ZASTOSOWANIA

Pracownia internetowa w szkole ZASTOSOWANIA NR ART/SBS/07/01 Pracownia internetowa w szkole ZASTOSOWANIA Artykuły - serwery SBS i ich wykorzystanie Instalacja i Konfiguracja oprogramowania MOL Optiva na szkolnym serwerze (SBS2000) Artykuł opisuje

Bardziej szczegółowo

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010 Bezpieczeństwo interoperacyjnego hostingu Gerard Frankowski, Zespół Bezpieczeństwa PCSS 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1 Agenda Wprowadzenie Zespół Bezpieczeństwa

Bardziej szczegółowo

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło www.w3.org 1999

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło www.w3.org 1999 Protokół HTTP 1.1 *) Wprowadzenie Jarek Durak * rfc2616 źródło www.w3.org 1999 HTTP Hypertext Transfer Protocol Protokół transmisji hipertekstu został zaprojektowany do komunikacji serwera WW z klientem

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

PrestaShop. Sklep internetowy szyty na miarę

PrestaShop. Sklep internetowy szyty na miarę PrestaShop. Sklep internetowy szyty na miarę Autor: Witold Wrotek Książka dedykowana edycji programu 1.5.2.0. Własny sklep internetowy? Z PrestaShop to nic trudnego! Jak zbudować sklep internetowy, który

Bardziej szczegółowo

Dokumentacja końcowa projektu z ZPR

Dokumentacja końcowa projektu z ZPR Dokumentacja końcowa projektu z ZPR Temat projektu: Prowadzący projekt: Zespół projektowy: Losowe przeszukiwanie stanów dr inż. Robert Nowak Piotr Krysik Kamil Zabielski 1. Opis projektu Projekt ma za

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

EasyInput EasyInput wydajniejsza praca użytkownika dzięki integracji SAP z MS Excel. Prezentacja produktu

EasyInput EasyInput wydajniejsza praca użytkownika dzięki integracji SAP z MS Excel. Prezentacja produktu EasyInput EasyInput wydajniejsza praca użytkownika dzięki integracji SAP z MS Excel Prezentacja produktu BCC EXTRA EasyInput jest jednym z produktów w ofercie BCC EXTRA. BCC EXTRA to unikalne produkty,

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

Ekspert MS SQL Server Oferta nr 00/08

Ekspert MS SQL Server Oferta nr 00/08 Ekspert MS SQL Server NAZWA STANOWISKA Ekspert Lokalizacja/ Jednostka organ.: Pion Informatyki, Biuro Hurtowni Danych i Aplikacji Wspierających, Zespół Jakości Oprogramowania i Utrzymania Aplikacji Szczecin,

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak Serwery Autorzy: Karol Czosnowski Mateusz Kaźmierczak Czym jest XMPP? XMPP (Extensible Messaging and Presence Protocol), zbiór otwartych technologii do komunikacji, czatu wieloosobowego, rozmów wideo i

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

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Zadanie programistyczne nr 3 z Sieci komputerowych

Zadanie programistyczne nr 3 z Sieci komputerowych Zadanie programistyczne nr 3 z Sieci komputerowych 1 Opis zadania Celem tego zadania jest napisanie prostego serwera WWW, wyświetlającego strony z zadanego katalogu. W tym celu wykonaj następujące czynności

Bardziej szczegółowo

7. zainstalowane oprogramowanie. 8. 9. 10. zarządzane stacje robocze

7. zainstalowane oprogramowanie. 8. 9. 10. zarządzane stacje robocze Specyfikacja oprogramowania do Opis zarządzania przedmiotu i monitorowania zamówienia środowiska Załącznik nr informatycznego 1 do specyfikacji Lp. 1. a) 1. Oprogramowanie oprogramowania i do systemów

Bardziej szczegółowo

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1 Spis treści Wstęp... xi Wymagania sprzętowe (Virtual PC)... xi Wymagania sprzętowe (fizyczne)... xii Wymagania programowe... xiii Instrukcje instalowania ćwiczeń... xiii Faza 1: Tworzenie maszyn wirtualnych...

Bardziej szczegółowo

Wprowadzenie do JSP. Marcin Apostoluk, Tadeusz Pawlus, Wojciech Walczak. Technologie Biznesu Elektronicznego, 7 marzec 2006

Wprowadzenie do JSP. Marcin Apostoluk, Tadeusz Pawlus, Wojciech Walczak. Technologie Biznesu Elektronicznego, 7 marzec 2006 Marcin Apostoluk Tadeusz Pawlus Wojciech Walczak Technologie Biznesu Elektronicznego, 7 marzec 2006 Plan prezentacji 1 2 3 4 5 6 7 Kto się tym zajmuje? Opis serwletu Przykład Serwlety inne niż HTTP Aplikacje

Bardziej szczegółowo

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86 Spis treści 1 Wprowadzenie - architektura, protokoły, system WWW... 1 1.1 Wstęp.................................................. 1 1.2 Ważniejsze daty......................................... 2 1.3 Protokoły

Bardziej szczegółowo

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1. Widżety KIWIPortal tworzenie umieszczanie na stronach internetowych opcje zaawansowane Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.3 Strona 1 z 17 1 SPIS TREŚCI 2 Metody osadzania widżetów... 3 2.1

Bardziej szczegółowo

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz SYLLABUS na rok akademicki 01/013 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr II/4 Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows IBM SPSS Statistics - ssentials for Python: Instrukcje instalacji dla Windows Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics - ssentials for Python w systemach operacyjnych Windows.

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

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy,

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy, Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć

Bardziej szczegółowo

Aktualizacja firmware w urządzeniu za pośrednictwem FTP

Aktualizacja firmware w urządzeniu za pośrednictwem FTP Aktualizacja firmware w urządzeniu za pośrednictwem FTP Wstęp W niektórych przypadkach aktualizacja firmware urządzenia za pośrednictwem FTP jest korzystniejsza od standardowej aktualizacji z poziomu hosta.

Bardziej szczegółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka

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

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny? Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA Dlaczego DNS jest tak ważny? DNS - System Nazw Domenowych to globalnie rozmieszczona usługa Internetowa. Zapewnia tłumaczenie nazw domen

Bardziej szczegółowo

System generacji raportów

System generacji raportów Zalety systemu Czym jest ProReports? prostota instalacji, wieloplatformowość (AIX, Linux, Windows, Solaris), obsługa popularnych formatów (PDF, XLS, RTF, HTML,TXT,XML,CSV), obsługa wielu baz danych, raporty

Bardziej szczegółowo

(Pluggable Authentication Modules). Wyjaśnienie technologii.

(Pluggable Authentication Modules). Wyjaśnienie technologii. Bezpieczeństwo systemów komputerowych. Temat seminarium: Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie technologii Autor: Bartosz Hetmański Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie

Bardziej szczegółowo

Firma Informatyczna ASDER. Prezentacja. Serwer danych zdalnych. Przemysław Kroczak ASDER 2012-08-06

Firma Informatyczna ASDER. Prezentacja. Serwer danych zdalnych. Przemysław Kroczak ASDER 2012-08-06 2012 Firma Informatyczna ASDER Prezentacja Serwer danych zdalnych Przemysław Kroczak ASDER 2012-08-06 Szanowni Państwo, Coraz częściej potrzebujemy dostępu do naszych danych będąc w różnych miejscach na

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

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie System komputerowy System komputerowy (ang. computer system) to układ współdziałaniadwóch składowych: sprzętu komputerowegooraz oprogramowania, działających coraz częściej również w ramach sieci komputerowej.

Bardziej szczegółowo

JBoss Application Server

JBoss Application Server Zagadnienia Programowania Obiektowego 4 grudnia 2006 1 Co to jest? 2 Co potrafi? Realizowane standardy Własne rozszerzenia Programowanie aspektowe Klastrowanie 3 Jak się z tym pracuje? Instalacja i konfiguracja

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo