You are on page 1of 7

SVEUILITE U DUBROVNIKU

Odjel za elektrotehniku i raunarstvo

Applet i servlet
Marko Laba

Dubrovnik, 2015.

Sadraj
1. Applet.............................................................................................................. 3
1.1. to je Applet?........................................................................................... 3
1.2.etiri kljune metode appleta.................................................................... 4
1.3. Sigurnost JavaAppleta............................................................................. 5
2. Servlet.............................................................................................................. 5
2.1. Java Servlet tehnologija............................................................................5
2.2. to je Servlet?...........................................................................................5
2.3. ivotni ciklus servleta.............................................................................. 6
2.4. Servlet API............................................................................................... 6
2.5. Servlet HTTP paket.................................................................................. 6

1. Applet
1.1 to je Applet?
2

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.Applet

Ovo 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:
3

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:


<!DOCTYPE html>
<html>
<head>
<title>HelloWorld_example.html</title>
</head>
<body>
<h1>A Java applet example</h1>
<p>Here it is: <applet code="HelloWorld.class" height="40"
width="200">
</applet></p>
</body>
</html>

Rezultat prethodnog koda je:

A Java applet example


Here 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 appleta


4

Svi 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 <PARAM> 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 JavaAppleta


5

Sigurnost 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 tehnologija
Kako 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 (requestresponse). Iako servleti mogu odgovoriti na bilo koji tip zahtjeva, obino se koriste kako bi se
proirile 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


6

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:
GET
POST
PUT
DELETE
HEAD
TRACE
CONNECT
OPTIONS
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.

You might also like