10
SVEUČILIŠTE U DUBROVNIKU Odjel za elektrotehniku i računarstvo Applet i servlet Marko Labaš

applet_servlet

Embed Size (px)

DESCRIPTION

f

Citation preview

SVEUILITE U DUBROVNIKUOdjel za elektrotehniku i raunarstvo

Applet i servlet

Marko Laba

Dubrovnik, 2015.Sadraj1. Applet.............................................................................................................. 31.1. to je Applet?........................................................................................... 31.2. etiri kljune metode appleta.................................................................... 41.3. Sigurnost JavaAppleta............................................................................. 52. Servlet.............................................................................................................. 52.1. Java Servlet tehnologija............................................................................52.2. to je Servlet?...........................................................................................52.3. ivotni ciklus servleta.............................................................................. 62.4. Servlet API............................................................................................... 62.5. Servlet HTTP paket.................................................................................. 6

1. Applet1.1 to je Applet?Applet je mala aplikacija koja je zamiljena da se ne izvrava samostalno, nego unutar druge aplikacije, tipino unutar web browsera. Klasa java.applet.Applet osigurava standardno suelje izmeu appleta i njihove okoline. Evo to se sve naziva appletom: mala aplikacija sigurni program koji se izvrava unutar web browsera podklasa klase java.applet.Applet instanca podklase od java.applet.AppletOvo je hijerarhija njenih nadklasa:

Slika 1 Hijerarhija klase Applet

Nain funkcioniranja appleta je sljedei: Web stranica sadri posebne tagove kojima informira web preglednik gdje se nalazi .class datoteka s Javinim kodom. Preglednik dobavlja kod na lokalno raunalo i izvrava ga u svojem ugraenom virtualnom stroju lokalno, na stroju na kojem se izvrava. Ako virtualni stroj koji je ugraen u web preglednik ne podrava najnoviju verziju Jave (to je redovito sluaj), onda treba instalirati Java Plug-in, Sun-ovu ekstenziju za popularne preglednike, koja omoguava pregledniku da koristi eksterni Javin virtualni stroj koja distribuira Sun. U fazi testiranja appleta moe se umjesto web preglednika koristiti i aplikacija koja se naziva appletviewer.Svrha appleta je ubacivanje dinamikih elemenata u web stranice, koje same po sebi mogu prikazati samo statiki tekst.

Implementacija appleta:1. Kreirati i kompajlirati Javin program koji implementira applet.2. Kreirati web stranicu u kojoj e applet biti prikazan.Primjer koda za Javin program:import java.applet.Applet;import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello, world!", 20, 10); }}

Primjer HTML koda koji prikazuje applet na web stranici:

HelloWorld_example.html

A Java applet example Here it is:

Rezultat prethodnog koda je:A Java applet exampleHere it is: Hello, world!

Veliina prostora koju zauzima applet dok se izvrava unutar web browsera zadana je atributima HEIGHT i WIDTH i sam applet je ne moe promijeniti.

1.2 etiri kljune metode appletaSvi appleti imaju sljedee etiri metode:public void init();public void start();public void stop();public void destroy();

Imaju ih jer ih ima njihova nadklasa, java.applet.Applet . U nadklasi su one samo deklarirane i ne ine nita.

Podklase mogu (ali i ne moraju) prekriti ove metode kako bi ispunile odreene zadae u odreeno vrijeme. Na primjer, metoda init() je dobro mjesto za uitavanje parametara iz oznake jer ona e biti pozvana upravo u trenutku kad se applet pone izvravati. Budui da su deklarirane u nadklasi, Web browser e pozvati te metode kad mu trebaju, ak ni ne znajui jesu li implementirane u appletu ili u nadklasi. To je dobar primjer polimorfizma.

Metoda start() se poziva bar jednom u appletovom ivotnom ciklusu, onda kad se applet starta ili restarta. Ponekad to moe biti i vie nego jednom. Mnogi appleti nemaju eksplicitnu start()metodu nego je nasljeuju iz nadklase. Najee se koristi za startanje threadova koje e applet trebati dok se izvrava.Metoda stop() se poziva bar jednom, kad browser napusti stranicu koja sadri applet. Kad se na nju opet vrati, pozvat e se metoda start(). Koristi se za zaustavljanje zaustavljanje threadova koje applet koristi. Kad je applet zaustavljen, ne bi trebao troiti CPU cikluse. Metoda destroy() se poziva tono jednom u ivotnom ciklusu appleta, upravo prije nego browser otpusti applet. Koristi se uglavnom za zavrno ienje.U JDK appletvieweru, izbor opcije Restart poziva stop() i onda start(). Opcija Reload poziva redom stop(), destroy() i init().

1.3 Sigurnost JavaAppletaSigurnost je vrlo vana stavka Javinog programskog okruenja. to appleti mogu, a to ne mogu raditi striktno je unaprijed odreeno. Kako trenutno stvari stoje, po standardima koje je definirao Netscape, appleti: ne mogu itati niti pisati u lokalne datoteke, ne mogu pokretati druge programe na korisnikoj strani niti manipulirati library datotekama i ne mogu se putem mree prikljuiti na bilo koje mjesto (IP adresu) osim na raunalo sa kojega su dohvaeni.Naravno, sigurnosne rupe uvijek postoje.

2. Servleti

2.1 Java Servlet tehnologijaKako se Web poeo koristiti za usluge isporuke, tako su i service provideri prepoznali potrebu za dinamikim sadrajima. Appleti, kao jedni od najranijih oblika dinamikih sadraja, fokusirani su na upotrebu klijentske strane za prikaz dinamikog sadraja krajnjem korisniku. Istovremeno se za tu svrhu istrauje i koritenje serverske platforme. Poetno su glavna tehnologija za generiranje dinamikog sadraja bile Common Gateway Interface (CGI) skripte. Iako je iroko koritena, tehnologija CGI skripata ima velik broj nedostataka, ukljuujui i ovisnost o platformi i nedostatak skalabilnosti. Kako bi se rijeili ti nedostatci kreirana je tehnologija Java Servleta, kao prenosiv nain pruanja dinamikih sadraja orijentiranih prema korisniku.

2. 2 to je Servlet?

Servlet je klasa programskog jezika Java, koja se koristi kako bi proirila mogunosti servera i host aplikacija kojima se pristupa preko programskog modela zahtjev-odgovor (request-response). Iako servleti mogu odgovoriti na bilo koji tip zahtjeva, obino se koriste kako bi seproirile aplikacije koje se nalaze na Web serverima. Za takve aplikacije, Java Servlet tehnologija definira HTTP specifine servlet klase. Servlet se izvrava unutar Web servera, i za razliku od appleta ne zahtijeva grafiko korisniko suelje.

Serveri koji sadre servlet engine nazivaju se kontejneri (engl. container). Program klijenta koji eli pristupiti Web serveru moe biti napisan u bilo kojem programskom jeziku. On pristupa web serveru i izvodi zahtjev. Servlet engine na web serveru procesira zahtjev i prosljeuje ga servletu. Nakon toga servlet alje odgovor preko web servera natrag klijentu.

Kljuna prednost Java Servlet tehnologije je brzina. Za razliku od CGI programa, servleti se jednom uitavaju u memoriju i izvode iz memorije nakon poetnog uitavanja. Servleti se stvaraju kao dretve (engl. thread), i po prirodi su viedretveni.

2.3 ivotni ciklus Servleta

Kontejner (container) u kojem se Servlet nalazi kontrolira ivotni ciklus Servleta. Kada je upuen zahtjev serveru, kontejner izvodi sljedee korake.

1. Ako ne postoji instanca servera, Web kontejner

a. Loada klasu servlet.b. Kreira instancu klase servlet.c. Inicijalizira instancu servleta, pozivom init metode.

2. Poziva service metodu, kojoj alje objekt zahtjeva i odgovora (request response).

Ukoliko kontejner treba izbrisati servlet, on ga finalizira tako to pozove destroy metodu servleta. Metode za ivotni ciklus servleta nalaze se unutar javax.servlet.Servlet suelja.Mogue je nadzirati i reagirati na dogaaje u ivotnom ciklusu servleta definiranjem listener objekata ije se metode pozivaju kada se dogodi neki od dogaaja ivotnog ciklusa. Kako bi mogli koristiti te listener objekte, treba definirati i specificirati listener klasu.

2.4 Servlet API

Servlet API je ukljuen u javax.servlet paket. Svi servleti moraju direktno ili indirektno implementirati javax.servlet.Servlet suelje (engl. interface). Suelje omoguuje da se servlet izvodi unutar servlet engina. Takoer definira ivotni ciklus servleta.

2.5 Servlet HTTP paket

Za stvaranje servleta koji koriste HTTP protokol i HTML, koristi se javax.servlet.http paket. HTTP protokol koristi skup tekstualno-baziranih metoda za zahtjeve i odgovore, ukljuujui:

GETPOSTPUTDELETEHEADTRACECONNECTOPTIONS

Klasa HttpServlet implementira ove HTTP metode. Za poetak je potrebno proiriti HttpServlet i nadjaati bilo koju od doGet() ili doPost() metoda. Povrh toga, mogue je nadjaati doPut() i doDelete() metode.7