Technologie dynamicznej
budowy
stron WWW
CGI, PHP, języki skryptowe
Active Server Pages, JAVA
Rafał Kasprzyk
2
Schemat komunikacji pomiędzy
przeglądarką a serwerem WWW
Przeglądarka
WWW
Serwer
WWW
PHP
ASP
PERL
J AVA
Żądanie przesłania strony (URL)
http://www.serwer.com/obrazki.asp
http://www.serwer.com/tabela.php
Wynik zapytania
w formacie HTML
Serwer
bazy
danych
ORACLE
SYBASE
INFORMIX
Zapytanie SQL
SELECT ... FROM ...
Wynik zapytania
HTTP
HTTP
3
CGI
CGI
(
Common Gateway Interface
) - standard interfejsu służącego
wymianie informacji między serwerami a zewnętrznymi programami.
CGI definiuje komunikację pomiędzy graficznym interfejsem użytkownika
(np. stroną WWW), programem CGI uruchomionym na odległym komputerze i
zasobami informacyjnymi (np. bazami danych) odległego komputera.
Zaimplementowana w serwerze obsługa standardu CGI pozwala mu
nadzorować wszystkie operacje - serwer staje się wówczas bramą
(gatewayem) do danego źródła informacji.
CGI nie jest językiem programowanie, a jedynie specyfikacją określającą
standard przekazywania informacji pomiędzy wyszukiwarką a serwerem
WWW. Programy w standarcie CGI można pisać w popularnych językach
programowania takich jak C++, Java, Delphi, VB czy w językach skryptowych
np. Perl, Python czy Rebol.
Programy i skrypty CGI przechowywane na serwerze są w katalogu /cgi-bin,
natomiast ich źródła (naturalnie tylko programów podlegających kompilacji) –
w katalogu /cgi-src.
4
CGI - przykład
Przekazanie danych do programu CGI odbywa się przy pomocy jednej
z dwóch metod:
za pośrednictwem wypełnianego na stronie formularza - do serwera
wysyłane są zmienne systemowe
poprzez kliknięcie hiperłącza - serwer otrzymuje informacje w postaci
rozszerzonego URL
Na przykład definiując formularz można określić:
<FORM METHOD=POST ACTION=http://www.serwer.com/cgi-
bin/skrypt.pl>
Po wypełnieniu przez użytkownika formularza dane z niego zostają
przesłane na serwer WWW. Uruchamia on jako osobny proces skrypt
Perl’a przekazując mu otrzymane dane. Skrypt z kolei powinien te dane
odczytać i wykonać na ich podstawie odpowiednią akcję (np. przesłać
odpowiedź użytkownikowi)
5
Języki skryptowe
PERL
(
Practical Extraction and Reporting Language
) -
skryptowy język programowania stosowany często do
tworzenia programów działających po stronie serwerów
internetowych, np. skryptów CGI (Server-Side Scripting).
Ze względu na fakt, że początkowo był rozwijany pod
kątem szybkiego i łatwego przeszukiwania dużych zbiorów
tekstowych zawiera bogate biblioteki rozbudowanych
funkcji służących do przetwarzania tekstu. Do wad PERL’a
należy zawiła (wzorowana na językach programowania
powłok uniksowych) składnia poleceń.
Rebol, Python - młodsze języki skryptowe
charakteryzujące się dopracowanymi bibliotekami
wspomagającymi operacje sieciowe
6
ASP
ASP
(
Active Server Pages
) - technologia opracowana przez
firmę Microsoft pozwalająca na tworzenie dynamicznych stron
WWW (z dynamicznie zmieniającą się zawartością).
Strona WWW w której wykorzystano elementy ASP jest zwykłym
plikiem tekstowym zawierającym skrypty ujęte pomiędzy tagami <% ...
%> i znaczniki HTML. W przypadku otrzymania żądania pobrania pliku z
rozszerzeniem .asp serwer wykonuje zawarte w nim polecenia ASP
(zazwyczaj generujące stronę WWW) i wysyła wynik do przeglądarki.
Dokumenty ASP mogą odwoływać się do programów uruchomionych
na serwerze WWW w celu podjęcia określonych działań, np. przeszukania
bazy danych, włączenia do strony innego dokumentu lub udostępnienia
strony w wersji przeznaczonej dla określonej przeglądarki.
ASP współpracuje jedynie z serwerami Microsoftu - IIS (Internet
Information Server) i Personal Web Server.
7
ASP
Ogólna zasada działania ASP (server-side scripting, czyli wykonanie
określonego kodu przez serwer) jest analogiczna sposobu komunikacji z
wykorzystaniem interfejsu CGI. Podstawowa różnica między tymi dwiema
technikami polega na tym, że o ile w przypadku CGI każde odwołanie do
skryptu lub programu wykonywanego na serwerze wiąże się z
koniecznością utworzenia na nim nowego procesu (co pochłania znaczącą
część zasobów systemowych), to program ASP przetwarzany jest przez
wyznaczony moduł serwera WWW obecny przez cały czas w pamięci. Fakt
ten ma duży wpływ nie tylko na stopień obciążenie serwera, ale również na
szybkość działania programów (oczywiście z korzyścią dla tych napisanych
pod kątem ASP).
Zaletą ASP jest niezależność od języka programowania, dostęp do baz
danych poprzez ODBC, wbudowany w serwer IIS debugger oraz wsparcie
dla technologii ActiveX i COM.
Niewątpliwą wadą ASP jest brak wsparcia dla innych platform
systemowych niż Windows przez co konieczne jest wykorzystanie
komercyjnego serwera IIS.
8
PHP
PHP
(
Personal Home Page Tools
) - skryptowy język
programowania służący do tworzenia dynamicznych stron
WWW.
Udostępniany jest na zasadach Open Source, czyli bezpłatnie
razem z kodem źródłowym. W odróżnieniu od ASP współpracuje o z
wieloma serwerami WWW działającymi na różnorodnych
platformach systemowych. Składnia jest stanowi połączenie
konstrukcji zaczerpniętych z języka C/C++ i PERL’a.
Zaletą PHP obsługa wielu baz danych, porozumiewanie się z
innymi usługami poprzez protokoły POP3, HTTP, FTP, IMAP, SNMP
oraz przejrzysta struktura kodu.
9
PHP - zasady użycia
Bloki kodu PHP umieszczane są bezpośrednio w dokumencie HTML.
Przed wysłaniem do przeglądarki serwer przekazuje dokument HTML
interpreterowi PHP, który tłumaczy komendy PHP oraz wykonuje
odpowiadające im operacje.
Umieszczając kod PHP w dokumencie HTML używa się jednego z 4
rodzajów znaczników:
<? kod ?>
<?php kod ?>
<script language="php">
kod
</script>
<%
kod
%>
aby używać tego rodzaju ograniczników trzeba ustawić w
pliku php.ini opcję
asp
_tags na On
Zwyczajowo pliki zawierające dokumenty HTML rozszerzone o
skrypty PHP posiadają rozszerzenia .php, .php3 lub .phtml.
10
PHP - przykład
Hello.php
<HTML>
<BODY>
<H2> Klasyka
programowania :
</H2>
<?php
$tekst = "Witaj świecie!";
print $tekst;
?>
</BODY>
</HTML>
Hello.htm
<HTML>
<BODY>
<H2> Klasyka
programowania :
</H2> Witaj świecie!
</BODY>
</HTML>
11
Gdzie szukać ?
ASP.PL
http://www.asp.pl
Active Serwer Pages
http://www.activeserverpages.com
Perl Institute
http://www.perl.org
Perl Language Page
http://language.perl.com
Oficjalna witryna PHP
http://www.php.net
phpBuilder
http://www.phpbuilder.com
12
Czym jest JAVA ?
Java
to
platforma
programistyczna
zaprojektowana przez Sun Microsystems
(http://java.sun.com).
Jej główne cechy to:
nowoczesny obiektowy język programowania
przenośność aplikacji
bezpieczeństwo
mały rozmiar kodu aplikacji
wolniejsze (nawet kilkukrotnie) działanie aplikacji
13
Platforma JAVA
Język JAVA - obiektowy język programowania
JAVA API - zbiór bibliotek zawierających
użyteczne dla programistów komponenty
Kompilator JAVA - program przekształcający
kod źródłowy napisany w języku Java do tzw.
bytecode
JAVA
Virtual
Machine
-
platforma
uruchomieniowa pozwalająca na uruchamianie
skompilowanych aplikacji, dostępna na różne
platformy systemowe
14
Java Development Kit
Konfiguracja pliku autoexec.bat
set path=c:\jdk1.3\bin\
set classpath=%classpath%;.\
Narzędzia pakietu JDK
javac- kompilator Java (tworzy kod pośredni - bytecode)
java- interpreter Java - wykonuje skompilowane programy w
Javie (zapisane już w bytecode)
appletviewer - narzędzie pozwalające wykonywać i
debagować applety Java bez użycia przeglądarki.
javadoc - tworzy dokumentacje API (w HTML), pobierając
komentarze z kodu źródłowego
15
Idea działania platformy JAVA
Win32
Kompilator J ava
J ava Virtual Machine
UNIX
MacOS
Kod aplikacji (.java)
Aplikacja (kod pośredni - .class)
JAVA
Aplikacja
(kod maszynowy
dla Win 32)
Win32
Aplikacja
(kod maszynowy
dla UNIX)
UNIX
MacOS
Kod aplikacji (.c)
Kompilator
C – Win32
Kompilator
C – UNIX
Kompilator
C – MacOS
Aplikacja
(kod maszynowy
dla MacOS)
C/C++
16
Język JAVA
realizacja paradygmatu programowania obiektowego
usunięcie wielodziedziczenia i zastąpienie go mechanizmem
interfejsów
brak możliwości przeciążania operatorów
mechanizmy współbieżności, obsługi sytuacji wyjątkowych i
kontrolą przydziału pamięci
uproszczenie modelu pamięci
uwolnienie programisty z obowiązku alokacji i zwalniania pamięci
usunięcie wskaźników
definiowanie funkcji i procedur tylko jako metody klas
obsługa języków narodowych wg. standardu UNICODE
wynikiem kompilacji jest kod pośredni (bytecode)
rozróżnianie małych i dużych liter
17
Pierwszy program
Kod programu -
HelloWorld.java
Program „Hello World“
class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello World");
}
}
Kompilacja - w wyniku otrzymujemy plik
HelloWorld.class
javac HelloWorld.java
Uruchomienie programu
java HelloWorld
18
Aplety i servlety
applet
- niewielki program wbudowany w inną aplikację. W
Internecie najczęściej można spotkać się z apletami pisanymi w
języku Java. Program taki jest ściągany jest przez przeglądarkę i
wykonywany po stronie użytkownika. Zazwyczaj wykonuje jakieś
obliczenia, tworzy i wyświetla animację. Ze względów
bezpieczeństwa aplety Javy nie mają praw dostępu do zasobów
lokalnego komputera (systemu plików, urządzeń zewnętrznych) i nie
mogą kontaktować się z innymi komputerami w sieci.
servlet
- niewielka aplikacja wykonywana na serwerze internetowym,
zazwyczaj napisana w języku Java. Servlet jest dla serwera WWW
tym, czym aplet dla przeglądarki. Dzięki niezależności od środowiska
serwera oraz używanego protokołu, servlety mogą stanowić
uniwersalne zamienniki skryptów CGI, rozszerzając możliwości
serwera o interaktywną komunikację z przeglądarką WWW, np.
poprzez generowane dynamicznie dokumenty HTML.
19
Zamieszczanie apletu w HTML
<APPLET>
początek bloku deklaracji
NAME
="
N
" - lokalna nazwa programu w ramach dokumentu HTML
CODE
="
C
" - rzeczywista nazwa programu
CODEBASE
="
B
" - adres URL programu (nazwa serwera/katalog)
ALT
="
T
" - tekst wyświetlany w razie braku możliwości uruchomienia programu
ALIGN
="
A
" - miejsce wyświetlania programu względem sąsiadującego tekstu:
(top , texttop , bottom , absbottom , baseline , middle , absmiddle , left , right)
WIDTH
="
W
" - szerokość obszaru przydzielonego do wyświetlania programu
HEIGHT
="
H
" - wysokość obszaru przydzielonego do wyświetlania programu
VSPACE
="
V
" - odległość od sąsiadującego tekstu w pionie
HSPACE
="
S
" - odległość od sąsiadującego tekstu w poziomie
parametry określające działanie programu
PARAM NAME
= "
M
"
VALUE
="
L
" gdzie: M - nazwa parametru , L - wartość
parametru
</APPLET>
20
Cykl życia apletu
init()
- metoda wywoływana tylko
raz, gdy strona WWW zawierająca
aplet jest po raz pierwszy
"załadowana", jeśli opuścimy stronę
WWW
start()
- metoda wykonywana za
każdym razem, gdy strona, na
której znajduje się aplet, staje się
stroną bieżącą w przeglądarce,
stop()
- metoda wykonywana za
każdym razem, gdy do przeglądarki
ładowana jest następna strona
WWW,
destroy()
- wykonywana gdy aplet
kończy swoje działanie
paint()
- wywoływana gdy
zaistnieje potrzeba odrysowania
apletu
init()
start()
stop()
destroy()
załadowanie strony
inicjacja apletu
uruchamianie
apletu
opuszczenie strony
z apletem
ponowne załadowanie
strony z apletem
zakończenie apletu
zwolnienie pamięci