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.