Uploaded by borisko

02.ArhitekturaJavaWebAplikacija

advertisement
ARHITEKTURA JAVA WEB
APLIKACIJA
Uvod (1/4)
●
●
●
●
Web aplikacije su aplikacije koje se koriste
uz pomoć web preglednika (engl. browser)
preko mreže (intranet ili Internet)
Aplikaciju nije potrebno instalirati na
računalo klijenta
Preglednik se još naziva i „tanki klijent“
(engl. thin client), jer je za korištenje web
aplikacije potreban samo taj program
U slučaju uvođenja nove inačice aplikacije
nije potrebna nikakva promjena na strani
klijenta (preglednika)
Uvod (2/4)
●
●
●
Prilikom pristupanja web stranicama,
preglednik (engl. browser) šalje zahtjev
(engl. request) web poslužitelju (engl.
server) koji mu odgovara slanjem
odgovora (engl. response)
Zahtjev sadržava informacije o samom
pregledniku i stranici koju želi dohvatiti
Odgovor sadržava stranicu koja se
dohvaća, informacije o njoj i informacije o
poslužitelju
Uvod (3/4)
Uvod (4/4)
●
●
●
Klijentsko računalo šalje HTTP zahtjev
web poslužitelju (engl. server), koji se
pretvara u objekt klase HttpServletRequest
Taj objekt se prosljeđuje web komponenti
(Servletu ili JSP-u) koja izravno ili uz
pomoć JavaBeans komponente (klasa koja
predstavlja neki entitet) komunicira s
bazom podataka
Nakon obrade zahtjeva web komponenta
generira objekt klase HttpServletReponse,
koji web server pretvara u odgovor koji se
prosljeđuje klijentu
Primjer zahtjeva
Primjer odgovora
Komunikacija preglednika i
poslužitelja (1/2)
Komunikacija preglednika i
poslužitelja (2/2)
●
HTTP – protokol (skup pravila) za
komunikaciju preglednika i poslužitelja
–
Request – sadržava informacije o tipu
zahtjeva, nazivu stranice koja se želi
dohvatiti, samom protokolu koji se koristi,
vrsti preglednika itd.
–
Response – sadržava statusni kod, opis
statusnog koda, naziv protokola,
informacije o poslužitelju i sadržaj
stranice koja se dohvaća (u slučaju
uspješnog dohvata)
HTML stranice (1/3)
HTML stranice (2/3)
●
●
●
Nakon unošenja adrese (npr.
www.web-stranica.hr/putanja/test.hr), web
preglednik uz pomoć DNS-a (engl. domain
name server) dohvaća IP adresu web
poslužitelja www.web-stranica.hr
Korištenjem IP adrese preglednik šalje
HTTP zahtjev (engl. request) za
dohvaćanje sadržaja stranice
Web poslužitelj šalje HTTP odgovor (engl.
response) koji sadržava HTML stranicu
HTML stranice (3/3)
●
●
Ukoliko stranica sadrži slike i ostale
netekstualne komponente kao što su
zvukovi, takve komponente se na HTML
stranicama pojavljuju samo kao reference
Web preglednik prima odgovor web
poslužitelja, interpretira HTML kod koji se
nalazi unutar stranice, dohvaća
netekstualne komponente s web
poslužitelja i prikazuje stranicu
JSP stranice (1/6)
●
●
●
engl. JavaServer Pages
Tehnologija koja omogućava dodavanje
dinamičkog sadržaja web stranicama
Web stranice koje su izrađene pomoću
JSP tehnologije zapravo ne postoje na web
poslužitelju, već ih web poslužitelj nanovo
kreira kod kreiranja odgovora na svaki
zahtjev
JSP stranice (2/6)
JSP stranice (3/6)
●
●
●
Kao i kod HTML stranica, i kod korištenja
JSP tehnologije web preglednik šalje HTTP
zahtjev web poslužitelju
Web poslužitelj u ovom slučaju nije
uobičajen poslužitelj kao kod HTML
stranica, već Java poslužitelj koji sadrže
module za rukovanje Java servletima
Java servleti su Java klase napisane
korištenjem Java servlet API-a, protokola
uz pomoć kojega Java klase mogu
odgovoriti na HTTP zahtjev
JSP stranice (4/6)
●
●
●
Web poslužitelj prepoznaje da je HTTP
zahtjev namijenjem JSP stranici i
prosljeđuje ga JSP engine-u
JSP engine dohvaća JSP stranicu s diska,
pretvara je u Java servlet, pretvara servlet
u klasu za izvođenje (engl. executable
class) i izvorni HTTP zahtjev prosljeđuje
Servlet engine-u
JSP engine pretvara JSP stranicu u Java
servlet samo ako je došlo do neke
promjene (ako nije, nema prevođenja)
JSP stranice (5/6)
●
●
●
Dio web poslužitelja pod nazivom servlet
engine izvodi servlet klasu
Tijekom izvođenja servlet klase generira se
HTML sadržaj koji servlet engine zajedno s
HTTP odgovorom prosljeđuje web
poslužitelju
Web poslužitelj prosljeđuje HTTP odgovor
web pregledniku koji dinamički generiranu
HTML stranicu prikazuje kao da se radi o
statičkoj HTML stranici (zapravo, dinamička
i statička HTML stranica su u istom formatu)
JSP stranice (6/6)
●
●
●
Do web preglednika stiže rezultat koji
generira servlet, a ne sama JSP stranica
Jedan te isti servlet generira različite
rezultate (HTML stranice) u ovisnosti o
ulaznim parametrima samog servleta i
ostalih faktora
Na primjer, u ovisnosti o ulaznim
parametrima servlet iz baze podataka može
dohvatiti različite podatke te ih prikazati na
ekranu (bez potrebe za ponovnim
prevođenjem za različite parametre)
Arhitektura aplikacije (1/2)
Arhitektura aplikacije (2/2)
●
●
●
Aplikacijska (poslovna) logika je odvojena
od prezentacijske logike
Servlet obrađuje zahtjev, koristi aplikacijsku
logiku i instancira Java bean-ove
Java bean-ovi predstavljaju model
podataka koji se koristi unutar aplikacije, a
sadržava podatke koji se nalaze unutar
baze podataka
Troslojne web aplikacije (1/2)
Troslojne web aplikacije (2/2)
●
●
●
●
Tri sloja: prezentacijski, aplikacijski i
podatkovni (engl. storage)
Prezentacijski sloj odnosni se na
preglednik i grafičko sučelje preko kojeg
korisnik koristi web aplikaciju
Aplikacijski sloj (još se naziva i sloj
poslovne logike) odnosi se na tehnologije
pomoću kojih je moguće oblikovati
ponašanje aplikacije i poslovna pravila
Podatkovni sloj odnosi se bazu podataka
Web poslužitelj
●
●
●
●
engl. web server
Kombinacija računala i programa koji se
izvode na tom računalu
Web poslužitelj komunicira s klijentom
preko preglednika koristeći HTTP protokol
Web poslužitelj za Java web aplikacije
podržava tehnologije kao što su servleti i
JSP stranice
Aplikacijski poslužitelj
●
●
●
engl. application server
Aplikacijski poslužitelj je Java virtualni stroj
koji omogućava izvođenje korisničkih
aplikacija
Surađuje s web poslužiteljem kako bi
klijentu korištenjem servleta i JSP stranica
vratio dinamički odgovor u obliku stranice
koja se prikazuje u pregledniku
Suradnja poslužitelja (scenarij)
(1/2)
●
●
●
1. Korisnik u svoj preglednik upiše URL
web aplikacije koju želi koristiti
2. Zahtjev korisnika dolazi do web
poslužitelja
3. Web poslužitelj zaključuje da je za
odgovor za korisnikov zahtjev potrebno
korištenje resursa koji se nalaze na
aplikacijskom poslužitelju (servleta), te
prosljeđuje zahtjev aplikacijskom
poslužitelju na kojem se aplikacija izvodi
Suradnja poslužitelja (scenarij)
(2/2)
●
●
●
4. Aplikacijski poslužitelj izvođenjem
programskog koda u odabranom servletu i
korištenjem baze podataka priprema
odgovor na korisnikom zahtjev i prosljeđuje
ga web poslužitelju
5. Web poslužitelj prosljeđuje odgovor do
preglednika iz kojeg je korisnik poslao
zahtjev
6. Preglednik prikazuju poslani odgovor
Poslužitelj s bazom podataka
●
●
●
●
engl. database server
Poslužitelj s bazom podataka omogućava
drugim računalima korištenje baze
podataka koja se nalazi na njemu
Koristi se kod klijent-poslužitelj arhitekturi
Sve operacije obavljaju se pomoću sustava
DBMS
Klijentske HTTP metode - GET
●
●
GET metoda služi za dohvaćanje stranica
sa poslužitelja
Pomoću GET metode je moguće poslati i
podatke poslužitelju, kao dio URL-a koji se
sastoji od parova „ključ-vrijednost“:
http://localhost:8080/TestnaAplikacija/index
.html?ime=Aleksander&prezime=Radovan
●
Parovi „ključ-vrijednost“ dodaju se nakon
URL-a stranice i znaka „?“, a ako ih ima
više, razdvajaju se sa znakom „&“
Klijentske HTTP metode - POST
●
●
●
POST metoda služi za slanje podataka od
klijenta prema poslužitelju
Koristi se kod slanja podataka iz
popunjenog obrasca, upitnika, forme ili sl.
Podaci koji se šalju prema poslužitelju nisu
dio URL-a
Literatura
●
●
●
Begining JSP, JSF and Tomcat Web
Development – Apress, 2007.
Web development with Java, using
Hibernate, JSPs and Servlets – Springer
2007.
The Java EE Tutorial Basic Concepts 4th
Edition, Addison Wesley, 2010.
Download