Curs-6-Java

12

Click here to load reader

description

Curs-6-Java

Transcript of Curs-6-Java

Page 1: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 1/12

Programare Java

Curs – 6

CREAREA DE PROGRAME INTERACTIVE PENTRU WEB

Prima oara cand au aparu pe !cara "arga ap"icaii"e Java penru #e$ a %o! in &''( ) aunci cand Ne!cape Navigaor a incepu !a ru"e*e app"e+uri ,

In genera" o ap"icaie Java dedicaa ui"i*arii pe #e$ ) in cadru" unei pagini -TM. ) !e nume!e app"e

!i are o !rucura di%eria %aa de o ap"icaie norma"a !cri!a in "im$a/u" Java ,

DI0ERENTA INTRE APP.ET+URI 1I AP.ICATII

Acea!a di%erena con!a in principa" in modu" cum ace!ea !un ru"ae ,

Ap"icaii"e !un ru"ae prin inermediu" unui inerpreor Java care incarca %i!ieru" c"a!a principa" a"ap"icaiei , Ace! "ucru !e %ace de o$icei din "inia de comanda %a"o!ind ui"iaru" 2/ava,e3e4 a"

 pac5eu"ui Java6 1D7 8 !au JD7 in ver!iuni"e mai vec5i 9 ,

Pe de a"a pare ) app"e+uri"e !un ru"ae de orice $ro#!er care !upora Java : cum ar %i Ne!cape

 Navigaor ) Inerne E3p"orer ) 1un -oJava !au Opera , App"e+uri"e po %i e!ae !i cu a/uoru"

ui"iaru"ui 2app"evie#er,e3e4 ) inc"u! in pac5eu" Java6 1D7 , Tre$uie meniona ca 2app"evie#er4

ignora oae ce"e"a"e e"emene a"e paginii #e$ in care in!eram app"e+u" no!ru !cri! in Java ,

Penru a ru"a un app"e ace!a re$uie ing"o$a inr+o pagina #e$ %o"o!ind ag+uri -TM. ) in ace"a!i

mod in care !un ing"o$ae imagini !au a"e e"emene , Aunci cand un ui"i*aor cu un $ro#!er

compai$i" cu Java incarca o pagina #e$ care conine un app"e ) $ro#!er+u" ra/!%era codu" app"e+u"ui

de pe !erveru" #e$ !i i" e3ecua pe !i!emu" "oca" a" ui"i*aoru"ui , Nu e!e nevoie de un inerpreorJava !epara : e" e!e inc"u! in $ro#!er , Ca orice ap"icaie ) un app"e Java conine un %i!ier c"a!a !i

orice a"e c"a!e e3erne nece!are ru"arii , Bi$"ioeca de c"a!e !andard a Java e!e inc"u!a auoma ,

Deoarece app"e+uri"e Java ru"ea*a in cadru" unui $ro#!er Java ) o pare din e%oru" crearii unei

iner%ee ui"i*aor e!e e"iminaa ; e3i!a de/a o %erea!ra in care app"e+u" poae ru"a ) un "oc unde !a !e

a%i!e*e gra%ica !i de unde !a !e primea!ca dae"e de inrare precum !i iner%aa $ro#!er+u"ui ,

OB1 < E!e po!i$i" ca un program Java !a %uncione*e aa ca app"e ca !i ca ap"icaie independena ,

Cu oae ca penru crearea ace!or ipuri de programe !e %o"o!e!c proceduri !eparae ) ace!ea nu inra

in con%"ic una cu a"a , Caraceri!ici"e !peci%ice app"e+uri"or vor %i ignorae aunci cand programu"

ru"ea*a ca ap"icaie !i vicever!a ,

A.EGEREA VER1IUNII DE JAVA PENTRU DE=VO.TARE

In ca*u" crearii de app"e+uri Java penru #e$ un programaor mai are o pro$"ema !up"imenara in a%ara

de preogramarea propriu+*i!a ; programu" !au re$uie !a poaa ru"a pe oae $ro#!er+e"e e3i!ene 8 mai

rea"i! vor$ind pe ca mai mu"e dinre e"e 9 ,

In ace! momen Java &,>6 e!e !ingura ver!iune de "im$a/ !uporaa a$!o"u comp"e de Micro!o%

Inerne E3p"orer !i $ro#!ere"e $a*ae pe e" 8 ap"icaii ce dein in /ur de ?( de procene din piaa $ro#!er+e"or 9 , Ne!cape !i Micro!o% au imp"emena !i ver!iuni"e Java &,& !i 6 dar imp"emenari"e

Page 2: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 2/12

mai produc anumie !urpri*e nep"acue ) in une"e ca*uri e3i!and app"e+uri care nu %uncionea*a corec

in ca*u" programarii "or %o"o!ind u"ima ver!iune a "im$a/u"ui ,

1un a ga!i o moda"iae de a oco"i ace!e nea/un!uri creand un program add+on 8 comp"emenar 9

 penru $ro#!er+e ) denumi Java P"ug+in ) care ne permie !a ui"i*am im$unaairi"e adu!e de Java &,6

!au Java 6 , Ace! program add+on e!e coninu in pac5eu" JD7 &,6 !i in oae ce"e"ae ver!iuni a"e

mediu"ui de de*vo"are < &,@ !i &,,

Java 6 a %o! proieca a!%e" inca un program care %o"o!e!e numai %aci"iai"e Java &,>6 !a !e poaacompi"a !i !a ru"e*e cu !ucce! in cadru" unui $ro#!er compai$i" Java ,

Daca un app"e %o"o!e!e una dinre %aci"iai"e inrodu!e de Java &,& !au Java 6 programu" nu va ru"a pe

 $ro#!er+e"e care nu !upora ace!e ver!iuni !i care nu au in!a"a add+on+u" de care amineam mai !u! ,

De mu"e ori im$unaairi"e adu!e "im$a/u"ui de ver!iuni"e &,& !au 6 nici nu !un via"e penru

ap"icaii"e de ip app"e ) ga!indu+!i o ui"iae mu" mai mare in domeniu" ap"icaii"or Java

independene ,

In une"e ca*uri de app"e+uri !cri!e penru Java &,>6 compi"aoru" ne va aeniona ca anumie e"emene

au %o! in"ocuie !i ca e3i!a o !o"uie mai $una ; ace!e aenionari 8 #arning! 9 nu !un me!a/e de

eroare a"e compi"aoru"ui) 1D7+u" creand un %i!ier c"a!a compi"a !i aragand doar aenia

 programaoru"ui,

RE1TRICTII DE 1ECURITATE A.E APP.ET+URI.OR 

Deoarece app"e+uri"e Java !un e3ecuae pe !i!emu" "oca" a" ui"i*aoru"ui e3i!a une"e re!ricii %oare

!erioa!e re%erioare "a aciviai"e de care e!e capa$i" un app"e , Daca ace!e re!ricii nu ar e3i!a un

 programaor Java ar puea !crie %ara pro$"eme un program care !a !earga oae %i!iere"e de pe un 5ard

di! ) !a co"ece*e in%ormaii privae !au !a rea"i*e*e di%erie $re!e in !ecuriaea !i!emu"ui ,

Ca regu"a genera"a ) app"e+uri"e Java %uncionea*a dupa principiu" 2$eer !a%e 5an !orr 2 ; unuiapp"e ii !un iner*i!e urmaoare"e aciviai <

+ !a ciea!ca !au !a !crie pe !i!emu" "oca" a" ui"i*aoru"ui

+ !a comunice cu un a" !ie deca ce" de unde provine pagina #e$ ce conine app"e+u"

+ !a ru"e*e programe e3ecua$i"e in !i!emu" "oca" a" ui"i*aoru"ui

+ !a incarce programe din !i!emu" ui"i*aoru"ui 8 e3ecua$i"e !au $i$"ioeci para/ae 9

Toae ace!e regu"i !e ap"ica app"e+uri"or in mod norma" dar e3i!a !i po!i$i"iaea 8 din con%igurarea

 $ro#!er+e"or 9 de a modi%ica nive"u" de !ecuriae dori ) permiand acce!u" din anumie direcoare !au

cone3iuni care anumie !ie+uri ,

De e3emp"u ) ui"iaru" 2app"evie#er,e3e4 permie de%inirea unei "i!e de conro" a" acce!u"ui penru

direcoare"e unde app"e+u" poae cii !au !crie %i!iere , In pracica in!a re$uie !a inem !eama de

 po!i$i"iaea de a ina"ni re!ricii de !ecuriae ma3ime iar penru eviarea pro$"eme"or programaoru"

re$uie !a ina !eama de aciuni"e care ii !un eoreic iner*i!e unui app"e ,

O %aci"iae nou inrodu!a de Java 6 e!e %oare imporana in pro$"ema !ecuriaii ; noua ver!iune a

"im$a/u"ui permie %o"o!irea unor conroa"e de !ecuriae !peci%ice care po %i inrodu!e !au e"iminae

din app"e+uri !i ap"icaii , Ace!e e"emene dau po!i$i"iaea unui ui"i*aor #e$ !a acorde 2incredere4

unui app"e a!%e" inca ace!a !a poaa ru"a %ara re!ricii pe !i!emu" "oca" ,

CREAREA APP.ET+URI.OR 

Page 3: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 3/12

Un program Java conine o meoda main89 ) %o"o!ia penru crearea o$iece"or ) !a$i"irea varia$i"e"or

de in!ana !i ape"area a"or meode ,

App"e+uri"e nu po!eda o meoda main89 care !a %ie ape"aa auoma "a "an!area programu"ui , In !c5im$

e3i!a mai mu"e meode ape"ae in di%erie punce a"e e3ecuiei unui app"e ,

Toae app"e+uri"e !un !u$c"a!e a"e c"a!ei App"e ) care aparine pac5eu"ui /ava,app"e , C"a!a App"e

 pre*ina doua ipuri de comporamen ) care re$uie !a %ie comune uuror app"e+uri"or <

+ capaciaea de a opera ca pare a $ro#!er+u"ui !i de a raa evenimene 8 cum ar %i de e3emp"u

incarcarea paginii in $ro#!er 9

+ capaciaea de a pre*ena o iner%aa gra%ica penru ui"i*aor !i de a pre"ua dae de inrare de "a

ui"i*aor

Cu oae ca un app"e poae %o"o!i orice a"e c"a!e are nevoie ) c"a!a App"e e!e c"a!a principa"a care

dec"an!ea*a e3ecuia unui app"e , 1u$c"a!e"e pe care "e vom crea ) aparinand c"a!ei App"e ) vor avea

%ormu"a <

 pu$"ic c"a!! app"eNou e3end! /ava,app"e,App"e

cod !ur!aF

Toae app"e+uri"e re$uie dec"arae pu$"ic deoarece c"a!a App"e e!e o c"a!a pu$"ica , Acea!a cerina

e!e va"a$i"a numai penru c"a!a principa"a a app"e+u"ui ; orice a"e c"a!e e3erne po %i pu$"ice !au

 privae ,

Aunci cand un $ro#!er compai$i" Java ina"ne!e un app"e Java inr+o pagina #e$ ) c"a!a app"e+u"ui

e!e incarcaa impreuna cu ce"e"a"e c"a!e e3erne %o"o!ie , Bro#!er+u" crea*a auoma o in!ana a

c"a!ei app"e+u"ui !i ape"ea*a meode a"e c"a!ei App"e aunci cand au "oc anumie evenimene ,

Di%erie app"e+uri care %o"o!e!c aceea!i c"a!a %o"o!e!c in!ane di%erie deci vom puea inroduce mai

mu"e copii a"e app"e+u"ui in aceea!i pagina !i %iecare !e va compora di%eri ,

PRINCIPA.E.E ACTIVITATI A.E APP.ET+URI.OR 

In "ocu" meodei main89 ) app"e+uri"e po!eda meode care !un ape"ae "a apariia anumior evenimene

 pe parcur!u" ru"arii app"e+u"ui ,

Un e3emp"u de a!%e" de meoda e!e pain89 care e!e ape"aa ori de cae ori %erea!ra app"e+u"ui

re$uie a%i!aa !au rede!enaa ,

In mod pre!a$i"i ace!e meode !un nu"e : e"e nu %ac pracic nimic , De e3emp"u meoda pain89 )

mo!enia de "a c"a!a App"e ) e!e o meoda nu"a , Penru a a%i!a ceva in %erea!ra app"e+u"ui meoda

 pain89 re$uie !upra!cri!a cu un comporamen care !a permia a%i!area de e3 ) gra%ica !au a"e

e"emene ,

a, Iniia"i*area

Iniia"i*area apare o daa cu incarcarea app"e+u"ui , Iniia"i*area poae con!a in crearea o$iece"or de

care are nevoie app"e+u" ) !earea !arii iniia"e ) incarcarea unor imagini !au %onuri !au !earea unor

 parameri , Penru a de%ini codu" de iniia"i*are a" unui app"e re$uie !upra!cri!a meoda ini89 <

 pu$"ic void ini89 codu" !ur!a

F

Page 4: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 4/12

 $, Pornirea

Un app"e e!e porni dupa iniia"i*are , Pornirea poae aparea !i daca app"e+u" a %o! anerior opri , De

e3emp"u un app"e e!e opri daca ui"i*aoru" $ro#!er+u"ui urmea*a o "egaura care o a"a pagina !i

e!e porni din nou aunci cand ui"i*aoru" revine in pagina care conine app"e+u" ,

Pornirea poae aparea de mai mu"e ori pe parcur!u" cic"u"ui de viaa a" unui app"e ) in!a iniia"i*area

apare doar o daa , Penru a de%ini codu" de pornire a" unui app"e re$uie !upra!cri!a meoda !ar89 <

 pu$"ic void !ar89

codu" !ur!a

F

Codu" meodei !ar89 poae conine rimierea anumior me!a/e o$iece"or e3erne !au !peci%icarea inr+

un anumi mod a %apu"ui ca app"e+u" i!i incepe ru"area ,

c, Oprirea

Oprirea !i pornirea merg una a"auri de cea"a"a , Oprirea apare aunci cand ui"i*aoru" para!e!e

 pagina care conine app"e+u" curen !au aunci cand app"e+u" !e opre!e !ingur ape"and meoda !op89 ,In mod pre!a$i"i orice %ire de e3ecuie 8 5read! 9 pe care app"e+u" "e+a "an!a i!i vor coninua

e3ecuia !i dupa ce ui"i*aoru" para!e!e pagina , Prin !upra!criere meodei !op89 puem !u!penda

e3ecuia ace!or %ire !i "e puem reporni daca app"e+u" e!e vi*ua"i*a din nou , In coninuare !e

 pre*ina o %orma a meodei !op89 <

 pu$"ic void !op89

codu" !ur!a

F

d, Di!rugerea

Meoda de!ro89 permie app"e+u"ui !a+!i %aca 2curaenie4 c5iar inaine de a !e e"i$era memoria

a"ocaa !au de a para!i $ro#!er+u" , Puem %o"o!i acea!a meoda penru a di!ruge orice %ire de

e3ecuie !au penru a e"i$era orice a"e o$iece care ru"ea*a , De o$icei nu !e !upra!crie meoda

de!ro89 deca daca e3i!a anumie re!ur!e care re$uie neapara e"i$erae ) cum ar %i %ire de e3ecuie

creae de app"e , Penru a de%ini codu" de di!rugere a" unui app"e re$uie !upre!cri!a meoda de!ro89

<

 pu$"ic void de!ro89

codu" !ur!a

F

In cur!uri"e anerioare a aparu un e"emen inrudi cu de!ro89 < meoda %ina"i*e89 , Di%erena inre

ace!e doua meode con!a in %apu" ca meoda de!ro89 !e ap"ica doar app"e+uri"or iar %ina"i*e89 e!e o

meoda generica ) ce permie unui o$iec de orice ip !a+!i e"i$ere*e re!ur!e"e ,

Java po!eda un recuperaor auoma a" re!ur!e"or ui"i*ae 8 gar$age co""ecor 9 ) care admini!rea*a

memoria in "ocu" no!ru , Ace!a recuperea*a memoria ocupaa de re!ur!e dupa ce programu" nu "e mai

%o"o!e!e ) a!a ca ) in mod norma" ) nu re$uie !a %o"o!im deca %oare rar meode ca de!ro89 !au

%ina"i*e89 ,

e, De!enare

De!enarea e!e modu" prin care un app"e a%i!ea*a ceva pe ecran < e3 ) "inii ) imagini ) ec,

Page 5: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 5/12

De!enarea poae aparea de %oare mu"e ori pe parcur!u" cic"u"ui de viaa a" unui app"e < o daa dupa

iniia"i*area app"e+u"ui ) a"a daa aunci cand %erea!ra $ro#!er+u"ui e!e adu!a in prim p"an ) a"a daa

aunci cand %erea!ra $ro#!er+u"ui e!e muaa !i a!a mai depare , Penru a !e puea a%i!a ceva meoda

 pain89 ) din !u$c"a!a noa!ra App"e ) re$uie !upra!cri!a , Meoda pain89 araa in %e"u" urmaor <

 pu$"ic void pain 8Grap5ic! g9

codu" !ur!a

F

Tre$uie !a o$!ervam ca ) !pre deo!e$ire de ce"e"a"e meode de!cri!e anerior ) meoda pain89 preia un

argumen < o in!ana a c"a!ei Grap5ic! , Ace! o$iec e!e crea !i ran!mi! meodei pain89 de care

 $ro#!er ) deci nu re$uie !a ne %acem pro$"eme "egae de de%inirea !a , Tou!i ) nu re$uie !a uiam !a

imporam c"a!a Grap5ic! din pac5eu" /ava,a# in codu" app"e+u"ui no!ru <

impor /ava,a#,Grap5ic!;

REA.I=AREA UNUI APP.ET

In cur!u" @ !+a crea un app"e Java denumi 2Pa"indrom,/ava4 cu !copu" de a dea"ia concepu" de

mo!enire , Acum revenim "a ace"a!i e3emp"u privindu+" acum doar ca app"e <

&< impor /ava,a#,Grap5ic!;

6< impor /ava,a#,Co"or;

@< impor /ava,a#,0on;

<

(< pu$"ic c"a!! Pa"indrom e3end! /ava,app"e,App"e

< 0on %Hne# 0on8Time!Roman)0on,BO.D)@9;

?<< pu$"ic void pain8Grap5ic! monior9

'< monior,!e0on8%9;

&>< monior,!eCo"or8Co"or,red9;

&&< monior,dra#1ring8A$$A)()>9;

&6< F

&@< F

Ace! app"e !upra!crie meoda pain89 , Deoarece app"e+u" a%i!ea*a doar caeva cuvine pe ecran nu

e!e nevoie de nici o iniia"i*are , A!%e" nu e!e nevoie de meode"e !ar89 ) !op89 !au ini89 ,

Meoda pain89 e!e "ocu" unde !e %ace oaa rea$a , O$iecu" Grap5ic! ran!mi! meodei pain89

 pa!rea*a !area !i!emu"ui gra%ic ) prin care !e cuno!c ari$ue"e curene a"e !upra%eei de de!enare ,

1area mai conine !i dea"ii privind %onu" curen !au cu"oarea %o"o!ia penru operaii"e de de!enare ,

.inii"e ' !i &> de%ine!c %onu" !i cu"oarea %o"o!ie penru operaii"e gra%ice , O$iecu" 0on e!e pa!ra

in varia$i"a de in!ana % iar o$iecu" repre*enand cu"oarea ro!ie e!e memora in varia$i"a red a c"a!ei

Co"or ,

.inia && %o"o!e!e %onu" !i cu"oarea curene penru a de!ena !iru" 2A$$A in po*iia ( ) > ,

Reamine!c ca po*iia > penru 3 !i e!e puncu" din !anga : !u! a" !upra%eei de de!enare a app"e+

u"ui ) cu va"oarea cre!cand in /o! a!a inca va"oarea > dep"a!ea*a e3u" in /o! ,

Daca imp"emenam in c"a!a meode"e corece penru app"e : ini89 ) !ar89 ) !op89 ) !au pain89 : aunci

app"e+u" no!ru va %unciona corec %ara a avea nevoie de un punc de !ar e3p"ici ,

Page 6: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 6/12

IN1ERAREA UNUI APP.ET INTR+O PAGINA WEB

Dupa ce am crea c"a!a !au c"a!e"e care compun app"e+u" !i "e compi"am in %i!iere de ip c"a!! re$uie

!a cream o pagina #e$ in care !a inroducem app"e+u" ,

App"e+uri"e !e in!erea*a inr+o pagina %o"o!ind eic5ea -TM. Kapp"eL ) o comanda care%uncionea*a a!emanaor a"or e"emene -TM. , E3i!a de a!emenea di%erie ui"iare penru

de*vo"area de pagini #e$ : ca Micro!o% 0ronPage !au Macromedia Dream#eaver : care po %i

%o"o!ie penru a in!era app"e+uri in pagini"e noa!re #e$ %ara a %o"o!i e3p"ici cod -TM. ,

1copu" ag+u"ui Kapp"eL e!e de a po*iiona app"e+u" no!ru in pagina #e$ !i de a conro"a modu" cum

araa ace!a in re"aie cu ce"e"a"e pari a"e paginii ,

Bro#!er+e"e compai$i"e Java %o"o!e!c in%ormaia coninua de acea!a eic5ea penru a ga!i !i e3ecua

%i!iere"e compi"ae cu c"a!e"e app"e+u"ui ,

Eic5ea Kapp"eL e!e de %ap o e3en!ie !pecia"a a "im$a/u"ui -TM. ) care permie inc"uderea app"e+

uri"or Java in pagini"e #e$ ; eic5ea e!e !uporaa de oae $ro#!er+e"e compai$i"e Java ,Mai /o! avem codu" !ur!a -TM. penru o pagina in care am in!era app"e+u" Pa"indrom <

K5m"L

K5eadL

Ki"eLPagina cu app"eKi"eL

K5eadL

K$odL

KpLPa"indromu" pre*ena e!e <K$rL

Kapp"e codeH4Pa"indrom,c"a!!4 #id5H>> 5eig5H&>>L

 Nu avei $ro#!er compai$i" Java

Kapp"eLK$odL

K5m"L

Tag+u" Kapp"eL de mai !u! conine rei ari$ue e!enia"e <

+ code + !peci%ica nume"e c"a!ei principa"e a app"e+u"ui

+ #id5 + !peci%ica "aimea %ere!rei app"e+u"ui in pagina #e$

+ 5eig5 + !peci%ica ina"imea %ere!rei app"e+u"ui in pagina #e$

0i!ieru" care conine c"a!a indicaa de ari$uu" CODE re$uie !a !e a%"e in ace"a!i direcor ca pagina

#e$ care conine app"e+u" ) cu e3cepia ca*uri"or cand %o"o!im ari$uu" CODEBA1E penru a

!peci%ica un a" direcor ,

WIDT- !i -EIG-T !un ari$ue nece!are deoarece $ro#!er+u" re$uie !a !ie ca !paiu !a a"oce

app"e+u" in pagina , E!e u!or !a de!enam inr+o *ona e3erioara %ere!rei app"e+u"ui a!a ca re$uie !a

ne a!iguram ca am preva*u o %erea!ra !u%icien de mare ,

Inre eic5ee"e Kapp"eL !i Kapp"eL po %i inc"u!e !i a"e e"emene de pagina #e$ ) cum ar %i e3 !au

imagini , Ace!ea !un a%i!ae in pagina #e$ doar de $ro#!er+e"e care nu !un compai$i"e Java ; e!e in

genera" $ine !a "e inc"udem deoarece ui"i*aorii !un a!%e" anunai ca nu po vedea un app"e penru

ca $ro#!er+u" "or nu e!e pu! "a curen , Daca nu !peci%icam nimic inre ace!e doua eic5ee $ro#!er+

e"e incompai$i"e Java nu vor a%i!a nimic in "ocu" app"e+u"ui ,

In e3emp"u" de mai !u! cei care nu au $ro#!er compai$i" Java vor vedea e3u" <

2Nu avei $ro#!er compai$i" Java4

Page 7: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 7/12

in "ocu" app"e+u"ui ,

Ce"e rei ari$ue a"e ag+u"ui Kapp"eL pre*enae mai !u! !un ce"e de $a*a ; ou!i ) eic5ea Kapp"eL

conine !i a"e ari$ue ) care po a/ua "a inegrarea )mai e%iciena a app"e+u"ui in !rucura genera"a a

 paginii #e$ <

a, ari$uu" A.IGN

Ace! ari$u de%ine!e modu" cum va %i a"inia app"e+u" in pagina #e$ ) re"aiv "a ce"e"a"e e"emene

a"e paginii ; ari$uu" poae "ua urmaoare"e va"ori <

+ "e% + a"inia*a app"e+u" "a !anga e3u"ui care urmea*a in pagina dupa app"e

+ rig5 + a"inia*a app"e+u" "a dreapa e3u"ui care urmea*a in pagina dupa app"e

+ e3op + a"inia*a parea !uperioara a app"e+u"ui cu parea !uperioara a ce"ui mai ina" e3 de

 pe "inie

+ op + a"inia*a app"e+u" cu ce" mai de !u! e"emen pre*en pe "inie 8 un a" app"e ) o imagine

!au un e3 9

+ a$!midd"e + a"inia*a mi/"ocu" app"e+u"ui cu mi/"ocu" ce"ui mai mare e"emen de pe "inie

+ midd"e + a"inia*a mi/"ocu" app"e+u"ui cu mi/"ocu" "iniei de $a*a a e3u"ui+ $a!e"ine + a"inia*a parea in%erioara a app"e+u"ui cu "inia de $a*a a e3u"ui

+ $oom + ace"a!i "ucru ca !i $a!e"ine

+ a$!$oom + a"inia*a parea in%erioara a app"e+u"ui cu ce" mai de /o! e"emen de pe "inie

Penru a %ina"i*a %ormaarea !peci%ica prin ari$uu" A.IGN ) puem %o"o!i eic5ea de erminare de

rand K$rL ) impreuna cu ari$uu" C.EAR ) ace!a din urma puand "ua rei va"ori <

+ "e% + coninua a%i!area re!u"ui paginii #e$ "a urmaoarea margine "i$era din !anga

+ rig5 + coninua a%i!area re!u"ui paginii #e$ "a urmaoarea margine "i$era din dreapa

+ a"" + coninua a%i!area re!u"ui paginii #e$ "a urmaoarea margine "i$era din !anga !i din

dreapa

 $, ari$ue"e -1PACE 1I V1PACE

Ari$ue"e -1PACE !i V1PACE !un %o"o!ie penru a deermina !paiu" ) in numar de pi3e"i ) inre

app"e !i e3u" incon/uraor , -1PACE conro"ea*a !paiu" ori*ona" in !anga !i in dreapa app"e+u"ui

iar V1PACE conro"ea*a !paiu" verica" e3i!en dea!upra !i dede!upu" app"e+u"ui ,

c, CODE 1I CODEBA1E

Ace!e doua ari$ue !un %o"o!ie penru a indica unde po %i ga!ie %i!iere"e cu c"a!a principa"a a

app"e+u"ui !i a"e %i!iere nece!are ru"arii ace!uia , Ace!e ari$ue !un %o"o!ie de un $ro#!er Java in

momenu" in care incearca !a ru"e*e app"e+u" ,

CODE indica nume"e %i!ieru"ui care conine c"a!a principa"a a app"e+u"ui , Cand CODE e!e %o"o!i

%ara ari$uu" opiona" CODEBA1E %i!ieru" care conine c"a!a va %i caua in ace"a!i "oc in care !e a%"a

 pagina #e$ care conine app"e+u" ,

In cadru" ari$uu"ui CODE re$uie !peci%icaa !i e3en!ia ,c"a!! ,

Ari$uu" CODEBA1E !e %o"o!e!e penru a indica $ro#!er+u"ui !a caue app"e+u" !i a"e %i!iere

nece!are ru"arii ace!uia inr+un a" direcor , CODEBA1E indica un a" direcor !au c5iar un a" !ie de

unde urmea*a a !e incarca c"a!e"e <

Kapp"e codeH4C"a!aMea,c"a!!4 code$a!eH5p<###,!ie,comc"a!e/ava 

5eig5H> #id5H>>L

Page 8: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 8/12

Kapp"eL

Tre$uie meniona ca eic5ea Kapp"eL e!e %o"o!ia !pecia" penru a in!era programe Java in pagini"e

#e$ , In pre*en e3i!a !i a"e ipuri de programe care ru"ea*a ineraciv inr+o pagina , Penru a raa

oae ace!e ipuri de programe %ara a %i nevoie de cae o eic5ea penru %iecare e3p"ici ) !peci%icaii"e

-TM. au inrodu! !i eic5ea Ko$/ecL ,

Acea!a eic5ea e!e %o"o!ia penru oae o$iece"e : programe ineracive !au a"e e"emene e3erne :care po %i pre*ene drep pare a unei pagini #e$ ,

Eic5ea are urmaoarea %orma <

Ko$/ec c"a!!idH4/ava<C"a!a,c"a!!4 code$a!eH4c"a!e/ava4 5eig5H> #id5H>>L

Ko$/ecL

Trecerea de "a eic5ea Kapp"eL "a Ko$/ecL pre!upune doar caeva modi%icari <

+ ari$uu" code re$uie in"ocui cu c"a!!id ; in p"u! ) inaine de nume"e c"a!ei app"e+u"ui re$uie

!peci%ica 2/ava<4 ,+ eic5ea Kapp"eL !e in"ocuie!e cu Ko$/ecL

In re! ari$ue"e raman ace"ea!i ,

TRAN10ERU. DE PARAMETRI CATRE APP.ET+URI

In ap"icaii"e Java puem ran!mie parameri meodei main89 !peci%icand argumene in "inia de

comanda , Apoi puem pre"ucra ace!i parameri in corpu" c"a!ei ) ap"icaia comporandu+!e

core!pun*aor argumene"or primie ,

In !c5im$ app"e+uri"e nu po!eda o "inie de comanda , App"e+uri"e po o$ine di%erie dae de inrare

din %i!ieru" -TM. care conine eic5ea Kapp"eL !au Ko$/ecL ) %o"o!ind parameri , Penru a de%ini !i

raa parameri inr+un app"e avem nevoie de doua "ucruri <

+ o eic5ea de parameru in %i!ieru" -TM.

+ codu" din cadru" app"e+u"ui care !a rae*e ace!i parameri

Paramerii unui app"e !un compu!i din doua pari < un nume ) care e!e a"e! de dumneavoa!ra ) !i o

va"oare ) care deermina va"oarea re!pecivu"ui parameru , De e3emp"u ) puem indica inr+un app"e

cu"oarea unui e3 %o"o!ind un parameru cu nume"e cu"oare !i va"oarea ro!u , Puem deermina vie*a

de deru"are a unei animaii %o"o!ind un parameru cu nume"e vie*a !i o anumia va"oare ,

In %i!ieru" -TM. care conine app"e+u" ) %iecare parameru e!e indica %o"o!ind eic5ea KparamL )

care conine doua ari$ue ) penru nume !i va"oare ) denumie NAME !i VA.UE , Eic5ea KparamL

!e inroduce inre eic5ee"e Kapp"eL de incepu !i de !%ar!i de conainer <

Kapp"e cadeH4C"a!a,c"a!!4 #id5H&>> 5eig5H&>>L

Kparam nameH%on va"ueHTime!RomanL

Kparam nameHdim va"ueH6L

Aici e!e un app"e JavaKapp"eL

Page 9: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 9/12

E3emp"u" de mai !u! de%ine!e doi parameri penru app"e+u" 2C"a!a4 < unu" ) denumi %on ) care are

va"oarea Time!Roman !i ce"a"a" ) denumi dim ) care are va"oarea 6 ,

0o"o!irea eic5eei KparamL e!e aceea!i penru app"e+uri"e care %o"o!e!c ag+u" Ko$/ecL in "oc de

Kapp"eL ,

Parameri !un ran!mi!i app"e+u"ui "a incarcarea ace!uia , In meoda ini89 a app"e+u"ui puem o$ine

ace!i parameri %o"o!ind meoda geParameer89 , Acea!a preia ca argumen un !ir ce repre*ina

nume"e parameru"ui caua !i inoarce un !ir care conine va"oarea re!pecivu"ui parameru , Penru a

o$ine va"oarea parameru"ui %on din %i!ieru" -TM. de mai !u! ) meoda ini89 ar re$ui !a conina <

1ring nume0on H geParameer82%on49;

 Nume"e parameri"or !peci%icai in eic5ea KparamL !i nume"e parameri"or meodei geParameer89

re$uie !a %ie idenice ) inc"u!iv ma/u!cu"e"e !au minu!cu"e"e %o"o!ie , Cu a"e cuvine ) Kparam

nameHpope!cu4L e!e di%eri de Kparam nameHPope!cuL ,

Reinei ca daca parameru" a!epa nu a %o! !peci%ica in %i!ieru" -TM. ) meoda geParameer89

inoarce va"oarea nu"" , De o$icei ) ar re$ui e!aa va"oarea nu"" a parameru"ui !i !a o%erim o va"oare

imp"icia , ca in e3emp"u" de mai /o! <

i% 8nume0onHHnu"" 9

  nume0onH4Courier4;

Mai re$uie reamini din nou ca meoda geParameer89 reurnea*a un !ir ; daca dorim ca parameru" !a

%ie de a" ip de o$iec !au daa re$uie !a i" converim e3p"ici , Penru a raa parameru" dim !i a+"

ari$ui unei varia$i"e inregi ) numia dimen!iunea ) am puea %o"o!i urmaoru" cod <

in dimen!iunea ;

1ring ! H geParameer82dim49;

i% 8!HHnu""9

  dimen!iunea H&6;e"!e

  dimen!iunea H Ineger,par!eIn8!9;

In coninuare !a vedem un e3emp"u de app"e care %o"o!e!e acea!a e5nica , Vom modi%ica app"e+u"

Pa"indrom penru a a%i!a a"e e3e , Nume"e e!e ran!mi! app"e+u"ui prinr+un parameru -TM. ,

Proiecu" va primi nume"e Pa"indromNou ,

Primu" "ucru pe care re$uie !a i" adaugam ace!ei c"a!e e!e o varia$i"a in care va %i pa!raa va"oarea

 parameru"ui pa"indrom , Deoarece vom %o"o!i ace! nume in cadru" app"e+u"ui ) vom adauga o

varia$i"a de in!ana dupa nume"e varia$i"ei penru %on <

1ring pa"indrom;

Penru a !ea va"oarea nume"ui ) re$uie !a o$inem parameru" , Ce" mai $un "oc de o$inere a

 parameri"or app"e+u"ui e!e in cadru" meodei ini89 , Meoda ini89 e!e de%inia a!emanaor cu pain89

 : pu$"ica ) %ara argumene !i %ara ip de reur , De a!emenea re$uie !a ne a!iguram ca e!am va"oarea

nu"" a parameru"ui , Daca pa"indromu" nu e!e !peci%ica !e va a%i!a imp"ici e3u" 2Denni! and Edna

!inned4 ) ca in e3emp"u" de mai /o! <

 pu$"ic void ini89

 pa"indrom H geParameer82pa"indrom49;i% 8pa"indromHHnu""9

 pa"indromH4Denni! and Edna !inned4;

Page 10: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 10/12

F

O daa adaugaa acea!a meoda o ce na mai ramane e!e !a modi%icam meoda pain89 , Meoda

origina"a dra#1ring89 araa a!%e" <

ecran,dra#1ring82A$$A4)()>9;

Penru a de!ena nou" !ir pe care i" !ocam in varia$i"a de in!ana pa"indrom ) o ceea ce re$uie !a

%acem e!e !a in"ocuim varia$i"a cu !iru" <

ecran,dra#1ring8pa"indrom)()>9;

In coninuare pre*enam "i!ingu" comp"e a" ap"icaiei app"e Pa"indromNou <

&< impor /ava,a#,Grap5ic!;

6< impor /ava,a#,Co"or;

@< impor /ava,a#,0on;

< "inii"e &)6)@ !e po in"ocui cu < impor /ava,a#, ;

(< pu$"ic c"a!! Pa"indromNou e3end! /ava,app"e,App"e < 0on %Hne# 0on8Time!Roman)0on,BO.D)@9;

?< 1ring pa"indrom;

< pu$"ic void pain8Grap5ic! ecran9

'< ecran,!e0on8%9;

&>< ecran,!eCo"or8Co"or,red9;

&&< ecran,dra#1ring8pa"indrom)()>9;

&6< F

&@< pu$"ic void ini89

&, pa"indrom H geParameer82pa"indrom49;

&(, i% 8pa"indromHHnu""9

 pa"indromH4Denni! and Edna !inned4;&< F

&?< F

In coninuare vom crea !i %i!ieru" -TM. care va conine ace! app"e <

K5m"L

K5eadL

Ki"eLPagina noua cu pa"indromKi"eL

K5eadL

K$odL

KpL

Kapp"e codeH4Pa"indromNou,c"a!!4 #id5H>> 5eig5H&>>L

Kparam nameHpa"indrom va"ueH4No !ir pre%er pri!on4L

Bro#!er+u" nu !upora Java

Kapp"eL

K$odL

K5m"L

Daca nu e!e !peci%icaa nici o va"oare penru parameru" pa"indrom e3u" imp"ici e!e 2Denni! and

Edna !inned4 ,

Page 11: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 11/12

AMP.A1AREA APP.ET+URI.OR IN WEB

Dupa ce am o$inu un app"e care %uncionea*a core!pun*aor puem %ace app"e+u" di!poni$i" in

Wor"d Wide We$ ,

App"e+uri"e Java !un inrodu!e pe un !erver #e$ in acea!i mod ca !i %i!iere"e -TM. ) imagini"e !au

a"e %i!iere mu"imedia , App"e+u" re$uie !oca inr+un direcor acce!i$i" !erveru"ui #e$ : de ce"e maimu"e ori in ace"a!i direcor care conine !i pagina #e$ ce ing"o$ea*a app"e+u" ,

1erveru" #e$ re$uie con%igura penru a o%eri app"e+uri Java $ro#!er+e"or ce !upora ace! "im$a/ ,

E3i!a caeva %i!iere ce re$uie incarcae pe un !erver #e$ <

+ pagina #e$ ce conine app"e+u"

+ oae %i!iere"e ,c"a!! %o"o!ie de app"e !i care nu %ac pare din $i$"ioeca de c"a!e !andard a

Java

In genera" daca !im cum !a pu$"icam o pagina #e$ ) %i!iere cu imagini !i a"e e"emene mu"imediavom puea !a pu$"icam %ara pro$"eme !i app"e+uri Java pe !ie+u" no!ru ,

AR-IVE JAVA

Moda"iaea !andard de amp"a!are a unui app"e Java inr+o pagina #e$ e!e de a %o"o!i eic5ee"e

Kapp"eL !i Ko$/ecL penru a indica nume"e c"a!ei primare a app"e+u"ui , 1e %o"o!e!e apoi un $ro#!er 

compai$i" Java care ran!%era !i e3ecua app"e+u" , Orice a"e c"a!e !au %i!iere %o"o!ie de app"e !un

ran!%erae de pe !erveru" #e$ ,

Pro$"ema cu ru"area in ace! %e" a app"e+uri"or e!e ca %iecare %i!ier de care are nevoie app"e+u" ) %ie

ace!a o c"a!a e3erna ) un %i!ier imagine ) audio ) e3 !au orice a"ceva : nece!ia o cone3iune !eparaa

de "a $ro#!er "a !erveru" #e$ care conine %i!ieru" , Deoarece inerva"u" de imp nece!ar penru a !a$i"i

con3iuni"e ace!ea nu e!e neg"i/a$i" ace! "ucru poae mari impu" oa" penru ran!%eru" app"e+u"ui !i

%i!iere"or !a"e pana "a durae inaccepa$i"e ,

1o"uia ace!ei pro$"eme e!e crearea unei ar5ive Java ) adica un %i!ier JAR , O ar5iva Java repre*ina o

co"ecie de c"a!e Java !i a"e %i!iere ) impac5eae inr+un !ingur %i!ier , 0o"o!ind o ar5iva Java $ro#!er+

u"ui ii e!e !u%iciena o !ingura cone3iune "a !erveru" #e$ , Reducand numaru" de %i!iere ran!%erae de

 pe !erver app"e+u" poae %i incarca !i ru"a mai rapid , Ar5ive"e Java po %i !i comprimae ) !ca*andu+"e

a!%e" dimen!iunea !i mic!orandu+!e impu" de ran!%er : dar in !c5im$ va dura ceva mai mu" din

 parea $ro#!er+u"ui decomprimarea inaine de ru"are ,

Penru a crea ar5ive JAR puem %o"o!i ui"iaru" JAVA denumi /ar ) care poae impac5ea !au

de!pac5ea %i!iere"e indin ar5ive Java , Urmaoarea comanda impac5eea*a oae c"a!e"e !i

imagini"e ,gi% dinr+un direcor inr+o !ingura ar5iva Java ) denumia Anima,/ar <

 /ar c% Anima,/ar ,c"a!! ,gi% 

Argumenu" c% !peci%ica doua opiuni in "inie de comanda care !un %o"o!ie de programu" /ar ,

Opiunea c indica %apu" ca ar5iva Java re$uie creaa iar % araa ca unu" dinre urmaoare"e argumenedin "inia de comanda repre*ina nume"e ar5ivei ,

Page 12: Curs-6-Java

7/18/2019 Curs-6-Java

http://slidepdf.com/reader/full/curs-6-java 12/12

Puem ) de a!emenea ) adauga inr+o ar5iva Java a"e %i!iere %o"o!ind comanda <

 /ar c% 1mi"e,/ar 15o#1mi"e,c"a!! 15o#1mi"e,5m" !pin5ead,gi% 

Ru"and ui"iaru" /ar %ara nici un argumen vom o$ine "i! a de opiuni care po %i %o"o!ie ,

Dupa ce am crea ar5iva Java ) in eic5ea Kapp"eL !e %o"o!e!e ari$uu" ARC-IVE penru a indica

"ocu" unde !e ga!e!e ar5iva , Puem %o"o!i ar5iva Java in %e"u" urmaor <

Kapp"e codeH15o#1mi"e,c"a!! arc5iveH1mi"e,/ar #id5H( 5eig5H6LKapp"eL

Acea!a eic5ea !peci%ica %apu" ca ar5iva numia 1mi"e,/ar conine %i!iere"e %o"o!ie de app"e ,

Bro#!er+e"e !i ui"iare"e de navigare care !upora %i!iere JAR !iu !a caue in inerioru" ar5ive"or

%i!iere"e nece!are pe impu" ru"arii app"e+u"ui ,

OB1 < cu oae ca o ar5iva Java poae conine %i!iere c"a!a ari$uu" ARC-IVE nu pre!upune

e"iminarea ari$uu"ui CODE , Penru a o incarca $ro#!er+u" re$uie ou!i !a !ie nume"e c"a!ei

 principa"e a app"e+u"ui ,

A.TE 0ORMATE DE AR-IVARE

Ver!iuni"e curene a"e ce"or mai ra!pandie $ro#!er+e : a"e %irme"or Micro!o% !i Ne!cape : !upora pe

"anga ar5ive JAR !i %ormae recuno!cue ca =IP !au CAB ,

E3emp"u" de mai /o! %o"o!e!e o ar5iva =IP <

Kapp"e codeHApp"eu"Meu,c"a!! arc5iveHui"e,*ip #id5H&>> 5eig5H&>>L

Kapp"eL

Micro!o% a inrodu! un ui"iar CABarc care rea"i*ea*a ar5ive in %ormau" CAB , Penru a !peci%icaacea!a ar5iva in codu" -TM. !e %o"o!e!e eic5ea KparamL impreuna cu un parameru numi

ca$$a!e ) va"oarea ace!uia %iind nume"e %i!ieru"ui ca$ , Iaa un e3emp"u <

Kapp"e codeHApp"eu"Meu,c"a!! #id5H&>> 5eig5H&>>L

Kparam nameHca$$a!e va"ueHApp"eu"Meu,ca$L

Kapp"eL

Ca !i ari$uu" ARC-IVE ) parameru" ca$$a!e va %i ignora de $ro#!er+e"e #e$ care nu !upora

%o"o!irea !a ,