Skopiuj plik do katalogu macierzystego serwera Apache (C:/xampp/htdocs). Uruchom przeglądarkę i wpisz w polu adresowym następujący ciąg:



Podobne dokumenty
W kodzie modułu Unit1 zdefiniuj dwie metody - składowe komponentu formatki TForm1:

Ćwiczenie 10 Generowanie plików HTML. Przygotuj program wyświetlający formatkę jak na rysunku (w fazie projektowania):

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Laboratorium 15: Bazy Danych Tworzenie bazy danych i programowanie elementów nawigacyjnych aplikacji stworzonej przy pomocy technologii dbexpress

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

Opracował: Tomasz Neumann Technologia dbexpress w środowisku DELPHI

W wyświetlonym okienku New Web Server Application wybierz opcję Web App Debugger Executable, a w polu Class Name wpisz: P1.

Ćwiczenie 1 Proste aplikacje - podstawowe komponenty.

Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Ćwiczenie 7 Komponent IBQuery - uruchamianie zapytań aktualizujących. 1. Przygotować w nowym katalogu aplikację do aktualizacji bazy SKOKI.GDB.

Wprowadzenie do systemu Delphi

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

Przesyłanie Pakietów Danych i TCP/IP

1. Wybierz File New Application. Pojawi się nowa aplikacja w Delphi.

Laboratorium 7 Blog: dodawanie i edycja wpisów

Cel: Zastosowanie okien pytającychwyświetlających pytania i komunikaty (MessageBox). Klub IKS

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Zaawansowane programowanie w (pakiecie) Delphi

Tworzenie aplikacji Windows Rozszerzenia serwerów WWW

Program powinien otworzyć się z pierwszym formularzem. Jeśli nie, otwórz pierwszy formularz, wybierając go z listy - Shift+F12.

Wydział: ZiMK Przedmiot: Programowanie - Delphi Semestr 5

Aplikacje WWW - laboratorium

Serwery Statefull i Stateless

Ćwiczenie 4 Aktualizacja tabel. 1. Skopiuj aplikację przygotowaną na poprzednich zajęciach w katalogu SKOKI1 do nowego katalogu SKOKI2.

Ćwiczenie 6 Proste aplikacje - podstawowe komponenty.

KROK 17 i 18. Cel: Tworzymy oddzielne okno - O autorze. 1. Otwórz swój program. 2. Skompiluj i sprawdź, czy działa prawidłowo.

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

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

Aplikacje internetowe - laboratorium

Delphi Laboratorium 3

Leszek Stasiak Zastosowanie technologii LINQ w

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

Zaawansowane aplikacje internetowe - laboratorium

Aplikacje WWW - laboratorium

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Jak napisaś edytor tekstowy w Delphi (wersja Delphi 2009)

Spis treści. Rzut okiem na środowisko...m... 9 Projektant formularzy...m... 11

PORADNIKI. Jak napisać bazę danych w Kylix

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Hello World w MIDAS. 1) Wybierz File New Application. Główna forma naszej aplikacji i projektu zostanie stworzona.

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

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

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Zaawansowane aplikacje internetowe

Część I: Przypisanie makr do obiektu (przycisku).

Programowanie modułowe

16) Wprowadzenie do raportowania Rave

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

Aplikacje WWW - laboratorium

Enterprise JavaBeans (EJB)

Dostęp do baz danych w ASP.NET.

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

PODSTAWY PROGRAMOWANIA

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

Programowanie wielowarstwowe i komponentowe

CMS- kontakty (mapa)

Podstawy informatyki

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje WWW - laboratorium

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany)

Laboratorium 1 Wprowadzenie do PHP

Laboratorium 050. Crystal Reports. Ćwiczenie 1. Otwarte pozycje

Rozpocznijmy ten odcinek od rozwiązania problemu postawionego w poprzednim odcinku:

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 5. MessageBox, InputBox, instrukcja Select Case i instrukcje pętli.

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Podstawy technologii WWW

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Zaawansowane aplikacje internetowe

Instrukcja korzystania z systemu poczty NetMail (wersja skrócona)

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

Niniejszy ebook jest własnością prywatną.

Materiały do laboratorium MS ACCESS BASIC

Aplikacje internetowe - laboratorium ASP.NET praca z bazą danych

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Oracle Application Express

Budowa aplikacji ASP.NET współpracującej z bazą danych do obsługi przesyłania wiadomości

Aplikacje internetowe - laboratorium

Aplikacje WWW - laboratorium

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Wprowadzenie do Doctrine ORM

Aplikacje WWW - laboratorium

WHEN_NEW_FORM_INSTANCE

Aplikacje WWW - laboratorium

Formularze i raporty w MS Access

Pracownia internetowa w szkole ZASTOSOWANIA

Aplikacje WWW - laboratorium

Język programowania PASCAL

Aplikacje internetowe laboratorium

Aplikacje WWW - laboratorium

Materiały pomocnicze do zajęć z przedmiotu Projekt ADP

Platforma VULCAN. Jak rozpocząć pracę na Platformie VULCAN? Logowanie administratora do Platformy

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Delphi podstawy programowania. Środowisko Delphi

Transkrypt:

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK Ćwiczenie 2 Publikowanie stron w internecie technologia CGI 1. Publikacja prostej strony zapisanej w HTML. Przygotuj plik o nazwie Strona1.HTML i zawartości: <TITLE>Wyswietlanie daty i czasu miejscowego</title> <H1>Data lub czas miejscowy</h1> <A HREF="http://localhost/cgi-bin/data1.exe"> Data dzisiejsza</a> <P> <A HREF=" http://localhost/cgi-bin/czas1.exe"> Czas bieżący</a> <P> <I>Strona wygenerowana przez HTML</I> Skopiuj plik do katalogu macierzystego serwera Apache (C:/xampp/htdocs). Uruchom przeglądarkę i wpisz w polu adresowym następujący ciąg: http://localhost/strona1.html Zaobserwuj czy wyświetlana strona zawiera dwa odnośniki do innych stron. Obydwa odwołania na razie nie działają. 2. Przygotowanie prostej aplikacji CGI. Wygeneruj w Delphi nową aplikację konsolową: File New Other... i w okienku New Items wybierz: Delphi projects Console Application. Zmień nazwę projektu na Data1. W pliku Data1.DPR wpisz następujący kod: program Data1; {$APPTYPE CONSOLE} uses SysUtils; writeln('content-type: TEXT/HTML'); writeln; writeln(''); writeln('<title>czas miejscowy</title>'); writeln(''); writeln('<h1>czas miejscowy</h1>'); writeln(''); writeln('<h3>'); writeln(formatdatetime('"dzis jest " dddd, mmmm d, yyyy,', Now)); writeln('</h3>'); writeln(''); 1

writeln('<a HREF="http://localhost/Strona1.html"> Powrot </A><hr>'); writeln('<i>strona wygenerowana przez Delphi<I>'); writeln(''); readln; end. Po uruchomieniu program powinien wyświetlać w okienku MS-Dos poprawny zapis strony zawierającej datę systemową. Okienko jest zamykane po naciśnięciu Enter. Usuń z tekstu programu ostatnią linię zawierającą instrukcję readln i ponownie skompiluj program. Skopiuj plik Data1.Exe do katalogu \cgi-bin\ w katalogu macierzystym serwera (C:/xampp/cgi-bin). Sprawdź że na stronie Strona1.HTML wyświetlonej jak w punkcie 1 odsyłacz Data dzisiejsza działa poprawnie. Opracuj samodzielnie aplikację wyświetlającą bieżący czas. Postępuj jak w punkcie 2. Nadaj projektowi nazwę Czas1.DPR. Do wyświetlenia sformatowanego czasu wykorzystaj funkcję: FormatDateTime('"Jest godzina: " hh:mm:ss AM/PM', Now) Po skopiowaniu programu Czas1.Exe do właściwego katalogu wypróbuj działanie strony. 3. PageProducer w aplikacji CGI Wygeneruj nową aplikację konsolową. Nadaj projektowi nazwę DataICzas.DPR. Dołącz do projektu Moduł Danych: File New Other... Data module. Umieść na formatce nowego modułu komponent PageProducer, a następnie opracuj i wpisz w jego właściwości HTMLDoc szablon powodujący wyświetlanie strony jak w programie Czas1.DPR. Zamiast linii zawierającej instrukcję wyświetlania czasu wpisz znacznik <#dataiczas>. Wygeneruj metodę obsługi zdarzenia OnHTMLTag o zawartości: procedure TDataModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag; const TagString: String; TagParams: TStrings; var ReplaceText: String); if TagString='dataiczas' then ReplaceText:=FormatDateTime('"Dzis jest " dddd, mmmm d, yyyy,' + '"<br> godzina: " hh:mm:ss AM/PM', Now); end; Zapisany wyżej algorytm obsługi znacznika powoduje wpisanie w jego miejsce sformatowanej daty i czasu systemowego. W pliku projektu o nazwie DataICzas.DPR wpisz następujący kod: program DataICzas; {$APPTYPE CONSOLE} uses Forms, SysUtils, Unit1 in 'Unit1.pas' {DataModule1: TDataModule}; 2

{$R *.RES} Application.CreateForm(TDataModule1, DataModule1); writeln('content-type: TEXT/HTML'); writeln; writeln(datamodule1.pageproducer1.content); end. Przetestuj działanie aplikacji. Najpierw w okienku Ms-Dos sprawdź poprawność kodu HTML (dopisując przed ostatnim end instrukcję readln), a następnie skompiluj ponownie program (bez readln) i skopiuj go do podkatalogu /CGI-BIN serwera. Sprawdź poprawność wyświetlania strony na dwa sposoby: - wywołaj bezpośrednio program wpisując w przeglądarce adres URL: http://localhost/cgi-bin/dataiczas.exe - dokonaj odpowiednich zmian w pliku Strona1.HTML (dodaj odwołanie do nowego programu), a następnie sprawdź poprawność wyświetlania daty i czasu. 4. Publikowanie tabeli Katalog Opracuj plik Strona2.HTML zawierający dwa odnośniki powodujące wyświetlanie tabel bazy danych poprzez uruchomienie odpowiedniego programu CGI. Pierwszy odnośnik przeznaczony do wyświetlania tabeli Katalog powinien mieć postać: <A HREF="http://localhost/cgi-bin/katalog.exe"> Tabela Katalog </A> Drugi przeznaczony do wyświetlania wartości wszystkich towarów na podstawie tabeli Stany powinien być skonstruowany analogicznie. Proponowana nazwa odpowiedniego programu CGI: Wartosc.Exe. Wygeneruj nową aplikację konsolową i dołącz do niej Moduł Danych. Moduł projektu o nazwie Katalog.DPR powinien być zapełniony zawartością jak zamieszczona w punkcie poprzednim zawartość pliku DataICzas.DPR. Zastąp ostatnią instrukcję następującą: writeln(datamodule1.datasettableproducer1.content); Na formatce Modułu Danych rozmieść komponenty - z zakładki dbexpress: SQLConnection i SQLDataSet z zakładki Internet: DataSetTableProducer. Ustaw własności komponentów odpowiednio dla uzyskania obrazu tabeli Katalog: SQLConnection: ConnectionName: wybierz IBConnection Params: wpisz nazwę pliku bazy: localhost:d:\zip_5\hurt.gdb LoginPrompt: wybierz False Connected: wybierz True SQLDataSet: SQLConnection: CommandType: wybierz SQLConnection1 wybierz cttable 3

CommandText: Active: wybierz Katalog wybierz True DataSetTableProducer: DataSet wybierz: SQLDataSet1 Header wpisz: kod HTML odpowiedni dla początku strony np.: <TITLE>Tabela Katalog</TITLE> Footer wpisz: kod HTML dla końca strony np.: <A HREF="http://localhost/Strona2.html"> Powrot </A><hr> <I>Strona wygenerowana przez Delphi</I> MaxRow wpisz: 1 Caption wpisz: <H2>Tabela Katalog</H2> Przetestuj działanie strony i aplikacji. Wykorzystaj właściwości RowAttributes i TableAttributes oraz edytor właściwości Columns do uatrakcyjnienia wyglądu tabeli. 5. Wyświetlanie wartości towarów Opracuj aplikację konsolową zawierającą dwa moduły: moduł projektu i Moduł Danych. Moduł projektu o nazwie Wartosc.DPR powinien być zapełniony zawartością jak zamieszczona w punkcie poprzednim zawartość pliku Katalog.DPR. Zastąp ostatni wiersz pliku następującym: writeln(datamodule1.datasetpageproducer1.content); Na formatce Modułu Danych rozmieść komponenty - z zakładki dbexpress: SQLConnection i SQLDataSet z zakładki Internet: DataSetPageProducer. Ustaw własności komponentów odpowiednio dla realizacji zapytania SQL: SELECT Count(*) AS liczba, Sum(ILOSC* CENA) AS wartosc FROM STANY; Połącz komponent DataSetPageProducer ze źródłem bazy danych i wpisz we właściwości HTMLDoc szablon strony: <TITLE>Wyswietlanie danych z bazy</title> <H1>Wyswietlanie wartosci towarow na podstawie tabeli STANY</H1> Liczba asortymentów: <#liczba> <BR> Wartosc wszystkich towarów: <#wartosc> <A HREF="http://localhost/Strona2.html"> Powrot </A><hr> <I>Strona wygenerowana przez Delphi</I> Przetestuj działanie strony i aplikacji. 6. Wyświetlanie Katalogu i wartości towarów wg gatunków 4

Skopiuj projekt Katalog.DPR (wszystkie pliki) do nowego katalogu. Zmień działanie programu tak by w ostatniej kolumnie tabeli wyświetlane były odnośniki do programów obliczających wartość towarów w 1 i 2 gatunku postępując jak opisano niżej. Dla komponentu DataSetTableProducer dodaj metodę obsługi zdarzenia OnFormatCell: procedure TDataModule1.DataSetTableProducer1FormatCell(Sender: TObject; CellRow, CellColumn: Integer; var BgColor: THTMLBgColor; var Align: THTMLAlign; var VAlign: THTMLVAlign; var CustomAttrs, CellData: String); if CellRow=0 then Align:=haLeft else if CellColumn=3 then CellData:='<A HREF="gatunek'+CellData+'.exe">Gatunek '+CellData+'</A>'; end; Sprawdź czy dyrektywa uses modułu Unit1.Pas zawiera specyfikacje modułów (ew. dopisz moduły): SysUtils, Classes, DBXpress, FMTBcd, HTTPProd, HTTPApp, DBWeb, DB, SqlExpr; Opracuj dwa nowe programy o nazwach Gatunek1.DPR i Gatunek2.DPR, które powodują wyświetlanie strony zawierającej liczbę asortymentów i wartość towarów w 1 gatunku oraz odpowiednio liczbę asortymentów i wartość towarów w 2 gatunku. Wskazówka: do wyznaczania wartości towarów w 1 gatunku wykorzystaj zapytanie: ZADANIA SELECT Count(*) AS liczba, Sum(ILOSC* CENA) AS wartosc FROM STANY, KATALOG WHERE KOD=KOD_TOW AND GAT="1" Przetestuj działanie aplikacji. 1. Opracuj stronę i aplikację wyświetlającą zawartość tabeli STANY. Tabela powinna zawierać nazwy towarów, a nie ich kody. 2. Opracuj aplikację realizującą zadanie jak w punkcie 6 bez stosowania komponentu DataSetTableProducer. Zastosuj DataSetPageProducer oraz PageProducer. 5