Ovdje je važno napomenuti i Document Object Model (skraćeno
DOM). DOM ne predstavlja neki konkretan jezik već je to model po kojemu
se u HTML-u stranica gradi od objekata. On je bitan, jer predstavlja
poveznicu između HTML-a koji sadrži objekte i u CSS-a i skriptnih jezika
koji tim objektima na neki način upravljaju tj. dodjeljuju ili mijenjaju
objektima u HTML-u neka svojstva.
2.1 Mogućnosti DHTML-a
Ispravnom uporabom i kombinacijom jezika koji sačinjavaju
DHTML pružaju se velike mogućnosti za manipuliranje stranicama. Spomenut
ćemo nekoliko najvažnijih ( u zagradi je navedeno koji od jezika omogućava
pojedinu opciju):
Interakcija s posjetiteljima stranice (JavaScript)
Mogućnost prilagodbe stranica ljudima s posebnim potrebama (CSS)
Lakše održavanje tj. izmjena izgleda stranica (CSS)
2.2 HTML (Hypertext Markup Language)
Glavna namjena HTML-a je određivanje
(označavanje) koje informacije i na koji način će se one prikazati na
internet stranicama. Treba napomenuti da HTML nije programski jezik
već jednostavan jezik za označavanje. Sastoji se od jednostavnih označnih
elemenata koji se nazivaju tag-ovi i unutar kojih se smještaju informacije.
Način na koji će se pojedina informacija, bilo tekstualna ili grafička,
prikazati ovisi o tag-u unutar kojega je smještena. Važno je napomenuti
da jedna od iznimno bitnih karakteristika HTML dokumenata je mogućnost
definiranje veze između stranica.
Izgled pojednostavljenog HTML dokumenta dan je sljedećim primjerom:
<HTML>
< HEAD>
<TITLE>Naslov dokumenta</TITLE>
< /HEAD>
< BODY>
<H1>Naslov</H1>
<H2>Podnaslov</H2>
<P>Text, text, text. . . </P>
<a href = ˝neka_stranica.html˝>slijedeća</a>
< /BODY>
< /HTML>
U počecima razvoja internet stranica HTML je služio sa
ciljem, kako je navedeno, da se unutar njega smještaju informacije,
a ujedno određuje na koji će način te informacije prikazati. Danas se
zbog razvoja ostalih (specifičnih) jezika teži da HTML ima malo drugačiju
ulogu. Ideja je da HTML sadrži informacije no da pomoću raznih tag-ova
pojedine elemente tih informacija (samo) označi, bez da se definira
kako će se ti elementi prikazati. Način na koji će se ti elementi onda
prikazati ili mijenjati pri interakciji sa posjetiteljem vrše se u drugim
prije spomenutim jezicima: CSS-u i JavaScriptu.
2.3 DOM (Document Object Model)
Kao što je već rečeno DOM predstavlja iznimno važan faktor
u DHTML-u. Na hrvatskom bi se DOM preveo kao objektni model dokumenta.
Upravo se iz imena može vidjeti čemu on služi. Kao prvo riječ je o modelu,
tj. definiranju strukture HTML dokumenta.
Prilikom definiranja strukture HTML dokumenta postavljaju se sljedeća
pitanja:
Koji sve tag-ovi postoje na stranici?
Koliko ih ima?
Na koji način su poredani?
Koja su svojstva tih tag-ova?
Na koji se način elementi tih tag-ova prikazuju na stranici?
DOM daje odgovor na ova pitanja. On izražava strukturu
HTML dokumenta na univerzalan, sadržajno neovisan način. Postoji više
razina (level-a) DOM-a koji se međusobno razlikuju po objektima koje
sadrže kao i mogućnostima mijenjanja svojstava i prikaza tih objekata.
2.3.1 Označavanje objekata u HTML-u
Naveli smo već da se HTML sastoji od objekata. Da bi ostala
dva jezika DHTML-a tj. CSS i JavaScript mogi identificarati objekte
kojima žele manipulirati potrebno je te objekte označiti.
U HTML-u objekti se označavaju tako da se za HTML element koji se želi
označiti eksplicitno definira ID atribut na sljedeći način:
<P id =˝naslov˝>
. . . . sadržaj paragrafa naslov. . .
< /P>
Ovako označenom HTML objektu se preko vrijednosti ID atributa
lako pristupa u CSS-u i JavaScript-u. Jedino ograničenje je da se ne
smije dodijeliti ista vrijednost ID atributa dvoma različitim objektima.
2.4 CSS (Cascading Style Sheets)
CSS se pojavio najkasnije
u odnosu na ostala dva jezika koja se koriste u DHTML-u. CSS je skup
pravila/stilova kojima se definira kako će se pojedini elementi HTML-a
prikazati.
Prednosti koje CSS nudi su sljedeće:
Znatno veće mogućnosti određivanja svojstava HTML-a objekata
Mogućnost odvajanja sadržaja od prezentacije (donekle)
Izgled kompletnog web site-a se može promjeniti samo promjenom jedne
CSS datoteke
Definiranje prezentacije ovisno o mediju (ekran, pisač, mobitel itd.)
Način funkcioniranja CSS-a je taj da se za pojedine objekte
HTML-a definiraju željena svojstva tj. pravila. Povezivanje HTML objekata
i CSS stilova se vrši preko CSS selektora. Glavna uloga selektora je
da izaberu (selektiraju) objekte iz HTML-a te za njih definiraju stil,
tj. vizualna svojstva koja će izabrani objekt posjedovati.
Ima više vrsta selektora, a ovdje ćemo navesti samo najčešće korištene:
Selektori tipa- izabiru sve objekte koji su određenog tipa (točnije
HTML tag-a)
ID selektori-izabiru objekte – izabiru objekte na osnovi vrijednosti
ID atributa
Selektori klase – izabiru one objekte/tag-ove koji imaju atribut class
jednak selektoru
Nakon što se pomoću selektora odrede objekti kojima se
želi manipulirati potrebno je definirati željena svojstva tih objekata.
Ona se definiraju pomoću deklaracijskog bloka koji se sastoji od jedne
ili više deklaracija. Svaka deklaracija sadrži dva dijela:oznaku svojstva
te vrijednost tog svojstva.
Mjesto gdje se definiraju CSS pravila može biti:
U samoj HTML datoteci koja koristi stilove
U zasebnoj CSS datoteci
Ova dva načina moguće je kombinirati i imati više CSS
datoteka u kojima se definiraju stilovi. Izbor ovisi o odabiru autora
no preporučljivo je stilove definirati u zasebnim CSS datotekama i to
tako da je za svaki medij definirana jedna CSS datoteka.
2.5 JavaScript
Uporabom DHTML-a mogu se napraviti dinamičke i interaktivne
web stranice, a jezik koji to omogućava naziva se JavaScript.
Osim JavaScript-a za istu namjenu može se koristiti i VBScript no on
se u praksi iznimno rijetko koristi.
JavaScript je skriptni jezik koji služi za upravljanje/izmjenu HTML
dokumenata za vrijeme pregledavanja tog dokumenta.
Navest ćemo par osnovnih karakteristika JavaScript-a:
Izvršava se u internet pregledniku posjetitelja
Sintaksa je slična programskom jeziku C
Sam programski kod može se smjestiti u samom HTML dokumentu ili zasebnoj
datoteci
Jedan od bitnih dijelova JavaScript-a je podrška događajima
(eng.events). Događaji na stranici se dešavaju kao rezultat neke akcije
posjetitelja – klik mišem, prelazak mišem preko nekog objekta, učitavanje
dokumenta i sl. Iznimno su korisni, jer se onda može definirati što
će se dogoditi ukoliko posjetitelj vrši određene radnje. Na taj način
posjetitelj dobija osjećaj interakcije, tj. osjećaj da su stranice ˝žive˝.
Kao što je spomenuto JavaScript se može smjestiti u samom HTML dokumentu
ili u jednoj ili više zasebnih datoteka. Ukoliko se smještava u datoteku
ta datoteka bi trebala imati ekstenziju ` js´i sam kod se bez posebnih
dodatnih oznaka smjesti u datoteku. Ukoliko se JavaScript kod smještava
u HTML to je moguće izvršiti na dva načina:
Unutar HTML tag-a <script>/<script>
Preko vrijednosti atributa događaja nekog HTML objekta
Objektima u HTML-u se u JavaScript-u pristupa preko ID
atributa. Svim objektima u HTML-u se također može pristupiti preko globalnih
polja koja se implicitno definiraju za svaki HTML dokument.
Problema u vezi korištenja JavaScript-a ima više. U praksi su oni najčešće
vezani uz to da razni internet preglednici ne podržavaju sve mogućnosti
JavaScript-a, ili ih ne podržavaju na standardom definiran način. No
veći problem od toga je mogućnost da neki internet preglednici uopće
ne podržavaju JavaScript ili da je JavaScript onesposobljen od strane
posjetitelja. Ovaj problem se za sad nažalost ne može riješiti niti
na jedan način.
3. TEHNOLOGIJE TEMELJENE NA KLIJENTU
3.1 Programski jezik Java
Java
je jednostavan, objektno-orijentiran, distribuiran, interpretivan, robustan,
siguran, prenosiv, visokoučinkovit, višenitan i dinamičan programski
jezik. On omogućuje web stranicama da sadrže minijaturne programe, i
pokazuju animacije, pomiču tekst ili omogućava interaktivni rad.
Jednostavnost jezika očituje se u tome da ga programeri mogu brzo naučiti,
jer je broj stvari koje treba upamtiti vrlo malen. Autorima Jave bio
je cilj učiniti je što sličnijom programskim jezicima koje većina programera
već dobro poznaje.
Objektna-orijentiranost znači da se kao programer možemo usredotočiti
na podatke (objekte) i metode (klase – skup metoda) pomoću kojih ćemo
obaviti neki posao, a da ne moramo uvijek samo voditi brigu o tome kako
ćemo napisati pojedine dijelove programa.
Distribuiranost- Java ima ugrađene sve osnovne funkcije za rukovanje
mrežnim protokolima. Uz nju dobijamo biblioteke klasa koje komuniciraju
s protokolima TCP/IP, FTP i HTTP. Zahvaljujući ovoj ugrađenoj mrežnoj
podršci, programi pisani u Javi mogu bez problema pristupati podacima
koji su pohranjeni širom interneta na različitim tipovima poslužitelja.
Budući da je zamišljena tako da podrži postojeće mrežne resurse za Javu
kažemo da je distribuirana.
Prenosivost i interpretiranje- Za razliku od kompiliranih jezika, kod
kojih se iz izvornog koda odmah stvara izvršiva verzija programa namijenjena
određenoj računalnoj platformi, prevođenje i izvršavanje Java aplikacija
podijeljeno je u dvije faze. U prvoj Java kompilator iz izvornog koda
programa stvara bajt-kod. Bajt-kod bismo mogli nazvati “izvršnom” verzijom
programa, iako se ne izvršava pod nadzorom operativnog sustava nekog
računala niti je posebno kompilirana za njega. Umjesto toga, bajt-kod
je međukod koji se pokreće pod nadzorom Javinog izvršnog sustava. Taj
izvršni sustav interpretira bajt-kod i prevodi njegove naredbe u naredbe
specificirane za računalo na kojem se izvršava aplikacija. Upravo zbog
toga što se prevođenje programa iz bajt-koda u jezik platforme (strojni
jezik) obavlja tijekom izvršavanja programa, Java se smatra interpretiranim
jezikom. Da bi se Java prenijela na neku novu platformu, potrebno je
samo napisati izvršni sustav za nju. Izvršni sustav susrest ćemo pod
imenom Java Virtual Machine(prividni stroj za Javu). Taj prividni stroj
nije ništa drugo do okolina unutar koje se izvršavaju Java aplikacije.
Odličan učinak – Svaki programski jezik koji se zasniva na interpretiranju
pati od sporosti, jer proces interpretiranja zahtijeva dosta procesorskog
vremena za prevođenje samih naredbi, pa se time gubi na brzini izvršavanja.
Unatoč sporosti, za većinu radnji koje obavljamo pomoću Jave – kao što
su stvaranje korisničkih sučelja ili mrežne komunikacije – nije potrebna
velika procesorska snaga. Aplikacija većinu svojeg vremena provodi besposlena,
čekajući sljedeću naredbu korisnika ili pristizanje novih podataka s
mreže.
Dinamičnost – Java je dinamički jezik, kojem se bez problema mogu dodavati
novi objekti. Tako se i svi programi pisani u Javi ponašaju potpuno
dinamički. To u praksi mnogo znači i donosi najviše prednosto kod pretraživačkih
programa. Ako program pisan u Javi ili pretraživački program pokuša
pristupiti nekom novom tipu podatka za koji ne zna kako ga obraditi,
program može zamoliti poslužitelja da mu pošalje klasu koja rukuje tim
tipom podataka. Program u Javi sam će se dinamički nadograditi dobivenom
klasom i obaviti željeni posao.
3.1.1 Oblici Java programa
Dva osnovna oblika Java programa jesu aplikacija i aplet.
Aplikacija se smatra samostalni program koji se izvršava neovisno o
pretraživačkom programu. Namjena tih aplikacija nije da budu ugrađene
u Web stranice, već da se ponašaju jednako kao i sve ostale aplikacije
na računalu. Java aplikacije se pokreću kao i ostali programi na računalu,
ali zahtijevaju da je na njemu instaliran Javin izvršni sustav (Java
Virtual Machine), koji takvu aplikaciju može pokretati.
Za razliku od aplikacija, Java appleti su zamišljeni tako da “žive”
na mreži, Internetu. Oni su složeniji od aplikacija. Izvršavaju se unutar
Web stranice, pa je zato neophodan pretraživački program koji ih može
pokrenuti. Zapravo, appleti su Java aplikacije koje se izvršavaju unutar
pretraživačkog programa.
Applet ugrađujemo u HTML Web stranicu korištenjem oznake APPLET. Također
moramo naznačiti Internet pretraživaču koliko će mjesta morati rezervirati
za grafičku prezentaciju appleta. Proizvoljno još možemo ubaciti PARAM
oznake ukoliko su appletu potrebni ulazni parametri. Na kraju taj dio
izgleda nekako ovako:
________________________________________
< APPLET CODEBASE="PGP/Client" CODE="MainApplet.class"
WIDTH=463 HEIGHT=360>
< param name=hostname value="localhost">
< param name=port value="4444">
< param name=KeyID value="0x9F9B08EB36329519">
< param name=UserID value="Zoran Rajic <[email protected]>">
< param name=debug value="true">
< H1 align=center>Your browser does not support <b>APPLET</b>
tag</H1>
< /APPLET>
________________________________________
4. TEHNOLOGIJE TEMELJENE NA POSLUŽITELJU
Kod aplikacije se izvršava na strani poslužitelja (Common
Gateway Interface)
Java Servleti
Server-side programski jezici koji se integriraju u HTML
Professional Home Page (PHP)
Active Server Pages (ASP)
Perl kao Apache Modul
Java Server Pages (JSP)
ColdFusion (CF) Allaire (odnedavno Macromedia)
4.1 ASP (Active Server Pages)
ASP stranice (Active Server Pages) je
skriptni jezik razvijen od strane Microsofta. Stranice su mješavina
HTML-a i programskog koda koji daju ASP stranici karakter dinamičke
stranice. Moguće ga je koristit samo na Windows 2003 serverima.
Jedna od najznačajnijih odlika ASP sranica je njihovo jednostavno povezivanje
sa bazama podataka te ubacivanje podataka iz baze u HTML stranicu, što
otvara razne mogućnosti za upotrebu ASP stranica. ASP se može pokrenuti
i nha vlastitom računalu ukoloiko instaliramo neke od web poslužitelja,
a to su Personal Web Server (za Windowse 95, Windowse 98 i Windowse
Me) i Internet Information Services (za Windowse NT, Windowse 2000 i
Windowse XP).
4.1.1 Kako instalirati IIS i koristiti ASP na Windows
XP Professional?
Najprije stavite Windows XP Professsional CD u vaš CD drive.
Kliknite na START-CONTROL PANEL-ADD/REMOVE PROGRAMS zatim chekirajte
Internet Information services i kliknite na Next. Inetpub folder će
biti kreiran na Vašem hard disku, zatim ga otvorite i nađete folder
„wwwroot“, u tom folderu kreirate novi folder i imenujete ga. Kada budete
pisali ASPkod usnimavat ćete ga kao npr. test1. Asp i spremiti u kreirani
folder.
Ukoliko želite biti sigurni da je upaljen web server provjeriti tako
da odete u Control Panel- Administrative tools te kliknite na IIS Manager.
U browseru upišite http://localhost/stranica/test1.asp ako želite pogledati
kako radi Vaša prva ASP stranica.
ASP kao program za izradu dinamičkih web stranica pruža
Vam:
Brzi razvoj aplikacija
Programsku strukturu baziranu na VB skriptnom jeziku
Mogućnost korištenja ActiveX kontrola i gotovih objekata
Lako i jednostavno povezivanje na baze podataka
Podrška za sve Microsoft platforme
Podrška na Apache Web Serveru
Jednostavno administriranje implementarnih stranica ASP TUTORIJALI
4.2 CGI (COMMON GATEWAY INTERFACE)
CGI je prilično star, ali još uvijek korišten kao program koji će nam
omogućiti razmjenu informacija između korisnika i web poslužitelja.
CGI skripte mogu biti pisane u raznim programskim jezicima (najčešće
Perl ili C), i kao takve predstavljaju aplikacije koje se na zahtjev
pretraživača, odnosno klijenta izvršavaju na strani web poslužitelja.
Tipični primjer komunikacije između klijenta i web poslužitelja,
je slanje korisničkih podataka poslužitelju putem web formi ugrađenih
u HTML stranicu, na temelju kojih će CGI skripta pokrenuta na poslužitelju
obaviti za nju predviđene zadatke, te rezultat vratiti klijentu.
Jednostavan primjer web forme, kojom će se pokrenuti CGI skripta na
poslužitelju sa zadatkom da obradi podatke koje je korisnik unio putem
web formi.
< FORM ACTION="http://www.ime_posluzitelja/moja_skripta.cgi"
METHOD=POST>
< b>Ime i Prezime :</b><INPUT TYPE="text" NAME="ime"
SIZE=30 MAXLENGTH=50>
< b> Password: </b> <INPUT TYPE="password"
NAME="passw" SIZE=30 MAXLENGTH=50>
< INPUT TYPE="submit" VALUE="Šalji!">
< INPUT TYPE="reset" VALUE="Brisanje!">
< /FORM>
U navedenom primjeru je ACTION atribut naveden unutar
<FORM> HTML oznake, kojim se web poslužitelju navodi put i ime
skripte koju treba izvršiti.
Pritiskom na gumb "Šalji!" aktivirat će se slanje unesenih
podataka web poslužitelju, koje će on dalje proslijediti prozvanoj CGI
skripti na obradu Nakon procesiranja primljenih podataka, te na temelju
njih, CGI skripta klijenta može po potrebi izvijestiti o učinjenim promjenama.
Biti će izneseni koraci koje je potrebno poduzeti, kako bi se na web
poslužitelju omogućilo uspješno pokretanje i izvođenje napisanih CGI
skripti.
Inicijalna konfiguracija Apache web poslužitelja ne dozvoljava pokretanje
CGI skripti, te je u potrebno modificirati httpd.conf konfiguracijsku
datoteku ukoliko se želi omogućiti.
Direktorij u kojem će se pohranjivati CGI skripte koje se žele izvoditi
mogu se nalaziti bilo gdje unutar datotečnog sustava, neovisno o DocumentRoot
konfiguracijskom parametru Apache web poslužitelja.
Nakon što je određen direktorij u potrebno je u httpd.conf datoteci
dodati dio kojim će se Apache poslužitelj obavijestiti da se u tom direktoriju
nalaze CGI izvršni programi, koje u slučaju zahtjeva za tom URL adresom
treba tako i tretirati.
Primjer:
< Directory /var/www/cgi-bin>
AllowOverride None
Options ExecCGI
SetHandler cgi-script
< /Directory>
Ovim dijelom koda Apache web poslužitelj će znati da se unutar /var/www/cgi-bin/
direktorija nalaze CGI skripte, koje treba tretirati kao izvršne programe
ukoliko se javi upit za URL adresom koja upućuje na navedeni direktorij.
Ključni parametar u konfiguraciji je Options ExecCGI parametar, kojim
se dozvoljava pokretanje i izvođenje CGI skripti pohranjenih u direktoriju
na koji se ovaj dio konfiguracije odnosi.
No, uz ovakvu konfiguraciju Apache web poslužitelja, parametru ACTION
unutar HTML <FORM> oznake potrebno je navesti cijeli put do skripte
koja se želi pokrenuti nakon pritiska na submit gumb.
Uobičajena je praksa da se u konfiguraciji Apache web poslužitelja definira
alias ime, kojim će se omogućiti intuitivnije pristupanje CGI skriptama,
pogotovo ukoliko se one nalaze negdje duboko unutar datotečnog sustava.
U tu svrhu potrebno je dodati :
ScriptAlias /cgi-bin/ "/usr/local/apache/www/cgi-bin/"
U ovom slučaju će Apache web poslužitelj svaki zahtjev za URL adresom
oblika http://www.ime_domene/cgi-bin/ime_skripte interpretirati kao
zahtjev za pokretanjem CGI skripte, koju će locirati unutar /usr/local/apache/www/cgi-bin
alias direktorija.
Napomena: Svakoj CGI skripti kojoj se želi omogućiti pokretanje potrebno
je chmod naredbom postaviti ovlasti izvođenja (execute bit). Naime,
budući da je web poslužitelj iz sigurnosnih razloga najčešće pokrenut
pod nobody korisničkim imenom, potrebno je execute zastavice postaviti
na način kojim će se web poslužitelju omogućiti pokretanje željene CGI
skripte.
4.3 JSP (Java Server Pages)
Java Server Pages (JSP) je tehnologija koja omogućava
mješanje običnog statičkog HTML-a i dinamičko generiranog sadržaja iz
servleta. JSP nije ograničen na samo jedan operacijski sustav ili na
jednog poslužitelja već je široko podržan.
JSP omogućuje jednostavno i brzo kreiranje dinamičkih sadržaja na Internetu,
te brz razvoj web aplikacija. Samo se jednostavno dokumentu doda nastavak
jsp te se postavi bilo gdje , gdje je moguće stavljati web stranice.
JSP podržava sofisticirane uzorke kao što je npr. Model-View-Controller
(MVC) kombinacija uzoraka i pakete koji koriste MVC.
JSP nije potrebno kompajlirati ili insalirati. Kompajliranje nije moguće
što će postati problem ako postoji greška u dinamičkom dijelu, jedino
poslužitelj treba biti tako da prima servlete i JSP.
JSP stranice na prvi pogled su dosta slične ASP I PHP stranicama u svojim
posebnim pseudo-tagovima koji se koriste kako bi se istaknuli dijelovi
inače normalnih HTML stranica. Jedina razlika je u tome što ASP i PHP
obrađuje browserov plug-in, dok se JSP tretira kao odvojeni proces koji
se odvija na strani servera.
4.3.1 Java Servleti
Javin odgovor na Common Gateway Interface (CGI) programiranje
su Java Servlet razredi. Java Servteti su razredi koji proširuju funkcionalnost
poslužitelja, izvršavaju se na web poslužitelju i djeluju kao veza između
klijenta i poslužitelja.
Web servletei su razredi koji su nasljeđeni iz razreda Http servleta.
Kako servleti zapravo rade?
Prvo klijent pošalje zahtjev poslužitelju, koji nakon toga učitava servlet
i za njega kreira posebnu dretvu. Za svaki učitani servlet se automatski
stvori posebna dretva što znači da se svaki zahtjev poslužuje u posebnom
trenutku. Servlet ostaje učitan sve dok se poslužitelj ne ugasi. Zatim
poslužitelj šalje servletu zahtjev ,te servlet sastavlja odgovor i šalje
nazad poslužitelju koji i dalje prosljeđuje odgovor klijentu. Prednost
servleta je da se on učita samo jednom te se po potrebi može koristiti
više puta. Srevleti za svaki pojedini zahtjev stvore posebnu dretvu
dok ostale CGI tehnologije za svaki zahtjev stvore poseban proces. Također
ako postoji N zahtjeva obične CGI tehnologije će se učitati u memoriju
N puta dok se servlet učita jedom i koristi više puta.
U slijedećem kodu prikazana je struktura osnovnog servleta
koji rukovodi GET zahtjevima koji su uobičajeni zahtjevi za web stranicama:
import java.io.;
import javax.servlet.;
import javax.servlet.http.;
public class Mojsevlet extdens Httpservlet (
public void do Get(HttpservletRequest request,
HttpResponse response)
Throws servletException, IOException (
//korist „request“ za čitanje HTTP headera
//i HTML podataka koje korisnik unese u HTML
//formular i potom pošalje
//koristi „response“ kao HTTP odgovore u kod ili u
//headere
PrintWriter out=response.getWriter();
//korist „out“ za slanje sadržaja u preglednike
4.4 PHP (PROFESSIONAL HOME PAGE)
PHP skriptni jezik trenutno je jedan od najpopularnijih i najčešće korištenih
skriptnih jezika u svijetu web programiranja. Svoju popularnost stekao
je svojom jednostavnošću, kvalitetom, te brojnim mogućnostima koja omogućuju
jednostavniji, a time i kvalitetniji dizajn web stranica.
Ukoliko se pogleda struktura skripti napisanih u PHP-u, mnogi će zaključiti
kako je PHP jezik neka vrsta kombinacije između Perl-a, C-a, te Java
programskog jezika.
Tako se u PHP-u mogu naći elementi objektno-orijentiranog programiranja
preuzeti iz Jave, odnosno C++-a, a također se može pronaći i niz drugih
vrlo korisnih elementa naslijeđenih iz Perl programskog jezika, budući
da se on pokazao vrlo moćnim alatom kada se govori o web programiranju.
No, posebna snaga PHP skriptnog jezika dolazi do izražaja u situacijama
kada se javlja potreba za integracijom sa bazama podataka, budući da
PHP posjeduje vrlo kvalitetno programsko sučelje dizajnirano upravo
u tu svrhu.
Kako bi se omogućilo pokretanje i izvođenje PHP skripti na Apache web
poslužitelju, prvi korak koji je potrebno poduzeti je dobavljanje samog
PHP programskog paketa, koji se može pronaći na www.php.net. Preporučuje
se dobavljanje što novije inačice ovog programskog paketa, kako bi se
osigurala potpuna kompatibilnost ovog programa sa drugim dijelovima
sustava .
PHP programski paket može se između ostalih dobaviti i u tar.gz formatu,
te je u tom slučaju postupak instalacije sličan kao i kod ostalih tar.gz
paketa.
Otpakiranje arhive može se obaviti u jednom koraku naredbom:
# tar -xzvf php.x.x.x.tar.gz
Nakon toga potrebno je ući u novonastali php.x.x.x direktorij, te pokrenuti
konfiguracijsku skriptu. Potrebno je obratiti pažnju na parametre koje
se prosljeđuju toj skripti, budući da o njima ovisi kako će se PHP slagati
sa ostalim komponentama sustava.
Npr.:
#./configure --with-apache=./apache_X.X.X --with-mysql=/usr/local/mysql
naredba će pokrenuti konfiguraciju sa podrškom za integraciju sa MySQL
bazom podataka, te Apache web poslužiteljem. Nije isključena mogućnost
da će PHP programski paket jednako dobro raditi pokretanjem ./configure
skripte bez parametara, no gore opisani postupak smatra se regularnim
i sigurnim.
Naredbom ./configure --help mogu se izlistati sve opcije koje se mogu
proslijediti ./configure skripti za konfiguraciju PHP programskog modula,
te ih je poželjno analizirati kako bi se na taj način uvidjele sve mogućnosti
konfiguracije ovog programa.
Nakon toga slijedi pokretanje make programa naredbama:
# make
# make install
što će ukoliko je sve uspješno prošlo rezultirati instaliranim PHP programskim
paketom.
Ukoliko se u ovom koraku naiđe na bilo kakve poteškoće, preporučuje
se pregledavanje FAQ pitanja na www.php.net portalu.
Sljedeći korak je konfiguracija samog Apache web poslužitelja, kako
bi se na taj način omogućilo pokretanje i izvođenje PHP skripti. U tu
svrhu potrebno je dodati slijedeće linije u Apache httpd.conf konfiguracijsku
datoteku:
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php .php
ScriptAlias /php3/ "/usr/local/bin/"
Action application/x-httpd-php3 "/php3/php/"
čime će se omogućiti izvođenje PHP skripti instaliranih računalu.
Ovim linijama Apache web poslužitelju omogućuje se prepoznavanje i izvršavanje
skripti u PHP jeziku. Definira se tip aplikacije, lokacija gdje će iste
biti smještene (/usr/local/bin) te interpreter koji će se pozivati pri
njihovom izvršavanju.
4.4.1 PHP programiranje
PHP je napravljen s nakanom da se olakša pisanje dinamičkih
web-stranica. Dinamičke php stranice su kao i obične web-stranice, osim
što se php naredbe miješaju s HTML tagovima. PHP naredbe su omeđene
posebnim tagovima. PHP ima nastavak .php, koji kaže web-serveru da to
nije obična web-stranica i traži dodatnu obradu, u ovom slučaju php-interpreter.
Taj će program proći kroz cijelu web-stranici, te na mjestima indiciranim
s PHP tagovima izvršiti naredbe, eventualno ih supstituirati s ispisom
koji oni produciraju. Prerađena stranica bit će na kraju poslana klijentu
koji će je prikazati.
Priprema php skripti
Općenito, u PHP skripti se koristi par specijaliziranih komandi za PostgreSQL
bazu podataka.
1. korak
je spajanje sa serverom baze podataka. Za to se koristi php naredba
pg_connect:
$veza = pg_connect ("dbname=perodb");
Spajanje s bazom podataka.
Kao argument toj komandi je string koji sadrži ime stroja na kojem se
nalazi baza podataka (u ovom slučaju, localhost znači za isti stroj
na kojem se nalazi i web-server) i ime baze podataka, kao npr. perodb.
Rezultat te funkcije je veličina $veza koja se koristi u ostalim PHP
komandama kao referenca za bazu podataka.
2. korak
je pretraživanje podataka ili upit. Npr. ako se želi dobiti lista studenata
s prve godine studija:
$rez = pg_query($veza,"SELECT ime,prezime FROM student WHERE godina=1");
Komanda za pretraživanje.
Pretraživanje može dovesti do greške, pa je pogodno komandu za pretraživanje
kombinirati s komandom za ispis greške, ako do nje dođe.
$rez = pg_query($veza,"SELECT ime,prezime FROM student WHERE godina=1")
or die ("Greška u upitu. " . pg_errormessage($veza));
.Komanda za pretraživanje i ispis greške.
U 3. se koraku
može odrediti je li je SQL komanda uopće dala neke rezultate u pretraživanju.
Ako jest, onda se ti rezultati mogu pregledati u narednom koraku.
4. korak
je pregledavanje rezultata za što se koristi jedna od PHP petlji:
// $broj je broj nađenih n-torki u relaciji
$broj = pg_numrows($rez);
if ($broj > 0)
{
for ($i=0; $i<$broj; $i++)
{
$redak = pg_fetch_array($rez, $i, PGSQL_ASSOC);
// podaci su u $redak['ime'] i $redak['prezime']
$ispis = "ime: $redak['ime'] $redak['prezime']<br>";
echo ($ispis);
}
}
Komanda za pregledavanje svih dobivenih rezultata.
5. (konačni) korak
je zatvaranje veze prema serveru baze podataka:
$rez = pg_close($veza);
Komanda za zatvaranje veze prema serveru baze podataka
ZAKLJUČAK
U ovom seminaru prikazana je izrada dinamičkih stranica
pomoću raznih tehnologija, odnosno programa za izradu od strane klijenta
i poslužitelja.HTTP protokol je postao popularan tek poslije 1994. godine,
kad su ljudi spoznali i vidjeli da osim elektroničke pošte i usenet
grupa, Internet može osim kao tekstualni forum biti dopunjen i grafičkom
prezentacijom. Web preglednici postigli su takvu popularnost, da danas
gotovo da i nema osobnog računala bez web preglednika, a industrija
je vidjela da postoje izvjesne rupe koje mogu upotpuniti svojim proizvodima.
Tako su nastali appleti, koji su omogućili da se na korisničkom računalu
izvode čuda, no isto je tako trebalo omogućiti izvjesna čuda i na strani
poslužitelja ,servera (aplikacija smještena na strani poslužitelja funkcionira
na principu poslužitelj-klijent veze, što znači da klijent šalje zahtjev
poslužitelju koji ga ispunjava i šalje odgovor. Za izradu aplikacije
korištene su Java servleti i JSP tehnologije koji proširuju funkcionalnost
poslužitelja).U početku su se pisale CGI skripte u C-u ili perlu, a
zatim su se pojavile i druge tehnologije no kad je Java došla na tržište
sa servletima, CGI i ostale tehnologije su uzmaknule. Danas u svijetu
"primitivnih" web aplikacija dominiraju tri tehnologije: JSP,
PHP i ASP koje smo mi objasnili u našem seminaru.
LITERATURA