Sunteți pe pagina 1din 11

Programare Java Curs 6 CREAREA DE PROGRAME INTERACTIVE PENTRU WEB Prima oara cand au aparu pe !

!cara "arga ap"ica ii"e Java pen ru #e$ a %o! in &''( ) a unci cand Ne !cape Naviga or a incepu !a ru"e*e app"e +uri , In genera" o ap"ica ie Java dedica a u i"i*arii pe #e$ ) in cadru" unei pagini -TM. ) !e nume! e app"e !i are o ! ruc ura di%eri a %a a de o ap"ica ie norma"a !cri!a in "im$a/u" Java , DI0ERENTA INTRE APP.ET+URI 1I AP.ICATII Acea! a di%eren a con! a in principa" in modu" cum ace! ea !un ru"a e , Ap"ica ii"e !un ru"a e prin in ermediu" unui in erpre or Java care incarca %i!ieru" c"a!a principa" a" ap"ica iei , Ace! "ucru !e %ace de o$icei din "inia de comanda %a"o!ind u i"i aru" 2/ava,e3e4 a" pac5e u"ui Java6 1D7 8 !au JD7 in ver!iuni"e mai vec5i 9 , Pe de a" a par e ) app"e +uri"e !un ru"a e de orice $ro#!er care !upor a Java : cum ar %i Ne !cape Naviga or ) In erne E3p"orer ) 1un -o Java !au Opera , App"e +uri"e po %i e! a e !i cu a/u oru" u i"i aru"ui 2app"e vie#er,e3e4 ) inc"u! in pac5e u" Java6 1D7 , Tre$uie men iona ca 2app"e vie#er4 ignora oa e ce"e"a" e e"emen e a"e paginii #e$ in care in!eram app"e +u" no! ru !cri! in Java , Pen ru a ru"a un app"e ace! a re$uie ig"o$a in r+o pagina #e$ %o"o!ind ag+uri -TM. ) in ace"a!i mod in care !un ing"o$a e imagini !au a" e e"emen e , A unci cand un u i"i*a or cu un $ro#!er compa i$i" cu Java incarca o pagina #e$ care con ine un app"e ) $ro#!er+u" ra/!%era codu" app"e +u"ui de pe !erveru" #e$ !i i" e3ecu a pe !i! emu" "oca" a" u i"i*a oru"ui , Nu e! e nevoie de un in erpre or Java !epara : e" e! e inc"u! in $ro#!er , Ca orice ap"ica ie ) un app"e Java con ine un %i!ier c"a!a !i orice a" e c"a!e e3 erne nece!are ru"arii , Bi$"io eca de c"a!e ! andard a Java e! e inc"u!a au oma , Deoarece app"e +uri"e Java ru"ea*a in cadru" unui $ro#!er Java ) o par e din e%or u" crearii unei in er%e e u i"i*a or e! e e"imina a ; e3i! a de/a o %erea! ra in care app"e +u" poa e ru"a ) un "oc unde !a !e a%i!e*e gra%ica !i de unde !a !e primea!ca da e"e de in rare precum !i in er%a a $ro#!er+u"ui , OB1 < E! e po!i$i" ca un program Java !a %unc ione*e a a ca app"e ca !i ca ap"ica ie independen a , Cu oa e ca pen ru crearea ace! or ipuri de programe !e %o"o!e!c proceduri !epara e ) ace! ea nu in ra in con%"ic una cu a" a , Carac eri! ici"e !peci%ice app"e +uri"or vor %i ignora e a unci cand programu" ru"ea*a ca ap"ica ie !i vicever!a , A.EGEREA VER1IUNII DE JAVA PENTRU DE=VO.TARE In ca*u" crearii de app"e +uri Java pen ru #e$ un programa or mai are o pro$"ema !up"imen ara in a%ara de preogramarea propriu+*i!a ; programu" !au re$uie !a poa a ru"a pe oa e $ro#!er+e"e e3i! en e 8 mai rea"i! vor$ind pe ca mai mu" e din re e"e 9 , In ace! momen Java &,>6 e! e !ingura ver!iune de "im$a/ !upor a a a$!o"u comp"e a a de Ne !cape Naviga or ca !i de Micro!o% In erne E3p"orer 8 ap"ica ii ce de in in /ur de '> de procen e din pia a $ro#!er+e"or 9 , Ne !cape !i Micro!o% au imp"emen a !i ver!iuni"e Java &,& !i 6 8 "a momen u" ac ua" : incepu u" "ui 6>>6 : u" ima ver!iune 9 dar imp"emen ari"e mai produc anumi e !urpri*e nep"acu e ) in une"e ca*uri e3i! and app"e +uri care nu %unc ionea*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"i a e de a oco"i ace! e nea/un!uri creand un program add+on 8 comp"emen ar 9 pen ru $ro#!er+e ) denumi Java P"ug+in ) care ne permi e !a u i"i*am im$una a iri"e adu!e de Java &,6 !au Java 6 , Ace! program add+on e! e con inu in pac5e u" JD7 &,6 !i in oa e ce"e"a e ver!iuni a"e

&

mediu"ui de de*vo" are < &,? !i &,@ 8 u" ima ver!iune "a momen u" %e$ruarie 6>>6 a pac5e u"ui de de*vo" are a" 1un pen ru "im$a/u" Java 6 numindu+!e Java6 1D7 &,@,> 9 , In genera" in ace! momen !e ap"ica o %ormu"a de! u" de $i*ara < + + app"e +uri"e !e !criu %o"o!ind e"emen e Java &,>6 deoarece %unc ionea*a pe oa e $ro#!er+e"e compa i$i"e Java ap"ica ii"e !e !criu %o"o!ind Java 6 deoarece po %i ru"a e pe orice !i! em care con ine un in erpre or Java

Java 6 a %o! proiec a a! %e" inca un program care %o"o!e! e numai %aci"i a i"e Java &,>6 !a !e poa a compi"a !i !a ru"e*e cu !ucce! in cadru" unui $ro#!er compa i$i" Java , Daca un app"e %o"o!e! e una din re %aci"i a i"e in rodu!e de Java &,& !au Java 6 programu" nu va ru"a pe $ro#!er+e"e care nu !upor a ace! e ver!iuni !i care nu au in! a"a add+on+u" de care amin eam mai !u! , De mu" e ori im$una a iri"e adu!e "im$a/u"ui de ver!iuni"e &,& !au 6 nici nu !un vi a"e pen ru ap"ica ii"e de ip app"e ) ga!indu+!i o u i"i a e mu" mai mare in domeniu" ap"ica ii"or Java independen e , In une"e ca*uri de app"e +uri !cri!e pen ru Java &,>6 compi"a oru" ne va a en iona ca anumi e e"emen e au %o! in"ocui e !i ca e3i! a o !o"u ie mai $una ; ace! e a en ionari 8 #arning! 9 nu !un me!a/e de eroare a"e compi"a oru"ui ) 1D7+u" creand un %i!ier c"a!a compi"a !i a ragand doar a en ia programa oru"ui , RE1TRICTII DE 1ECURITATE A.E APP.ET+URI.OR Deoarece app"e +uri"e Java !un e3ecu a e pe !i! emu" "oca" a" u i"i*a oru"ui e3i! a une"e re! ric ii %oar e !erioa!e re%eri oare "a ac ivi a i"e de care e! e capa$i" un app"e , Daca ace! e re! ric ii nu ar e3i! a un programa or Java ar pu ea !crie %ara pro$"eme un program care !a ! earga oa e %i!iere"e de pe un 5ard di!A ) !a co"ec e*e in%orma ii priva e !au !a rea"i*e*e di%eri e $re!e in !ecuri a ea !i! emu"ui , Ca regu"a genera"a ) app"e +uri"e Java %unc ionea*a dupa principiu" 2$e er !a%e 5an !orrB 2 ; unui app"e ii !un in er*i!e urma oare"e ac ivi a i < + + + + !a ci ea!ca !au !a !crie pe !i! emu" "oca" a" u i"i*a oru"ui !a comunice cu un a" !i e deca ce" de unde provine pagina #e$ ce con ine app"e +u" !a ru"e*e programe e3ecu a$i"e in !i! emu" "oca" a" u i"i*a oru"ui !a incarce programe din !i! emu" u i"i*a oru"ui 8 e3ecu a$i"e !au $i$"io eci par a/a e 9

Toa e ace! e regu"i !e ap"ica app"e +uri"or in mod norma" dar e3i! a !i po!i$i"i a ea 8 din con%igurarea $ro#!er+e"or 9 de a modi%ica nive"u" de !ecuri a e dori ) permi and acce!u" din anumi e direc oare !au cone3iuni ca re anumi e !i e+uri , De e3emp"u ) u i"i aru" 2app"e vie#er,e3e4 permi e de%inirea unei "i! e de con ro" a" acce!u"ui pen ru direc oare"e unde app"e +u" poa e ci i !au !crie %i!iere , In prac ica in!a re$uie !a inem !eama de po!i$i"i a ea de a in a"ni re! ric ii de !ecuri a e ma3ime iar pen ru evi area pro$"eme"or programa oru" re$uie !a ina !eama de ac iuni"e care ii !un eore ic in er*i!e unui app"e , O %aci"i a e nou in rodu!a de Java 6 e! e %oar e impor an a in pro$"ema !ecuri a ii ; noua ver!iune a "im$a/u"ui permi e %o"o!irea unor con roa"e de !ecuri a e !peci%ice care po %i in rodu!e !au e"imina e din app"e +uri !i ap"ica ii , Ace! e e"emen e dau po!i$i"i a ea unui u i"i*a or #e$ !a acorde 2incredere4 unui app"e a! %e" inca ace! a !a poa a ru"a %ara re! ric ii pe !i! emu" "oca" , CREAREA APP.ET+URI.OR Un program Java con ine o me oda main89 ) %o"o!i a pen ru crearea o$iec e"or ) ! a$i"irea varia$i"e"or de in! an a !i ape"area a" or me ode , App"e +uri"e nu po!eda o me oda main89 care !a %ie ape"a a au oma "a "an!area programu"ui , In !c5im$ e3i! a mai mu" e me ode ape"a e in di%eri e punc e a"e e3ecu iei unui app"e ,

Toa e app"e +uri"e !un !u$c"a!e a"e c"!ei App"e ) care apar ine pac5e u"ui /ava,app"e , C"a!a App"e pre*in a doua ipuri de compor amen ) care re$uie !a %ie comune u uror app"e +uri"or < + + capaci a ea de a opera ca par e a $ro#!er+u"ui !i de a ra a evenimen e 8 cum ar %i de e3emp"u incarcarea paginii in $ro#!er 9 capaci a ea de a pre*en a o in er%a a gra%ica pen ru u i"i*a or !i de a pre"ua da e de in rare de "a u i"i*a or

Cu oa e ca un app"e poa e %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 e3ecu ia unui app"e , 1u$c"a!e"e pe care "e vom crea ) apar inand c"a!ei App"e ) vor avea %ormu"a < pu$"ic c"a!! app"e Nou e3 end! /ava,app"e ,App"e C DD cod !ur!a E Toa e app"e +uri"e re$uie dec"ara e pu$"ic deoarece c"a!a App"e e! e o c"a!a pu$"ica , Acea! a cerin a e! e va"a$i"a numai pen ru c"a!a principa"a a app"e +u"ui ; orice a" e c"a!e e3 erne po %i pu$"ice !au priva e , A unci cand un $ro#!er compa i$i" Java in a"ne! e un app"e Java in r+o pagina #e$ ) c"a!a app"e +u"ui e! e incarca a impreuna cu ce"e"a" e c"a!e e3 erne %o"o!i e , Bro#!er+u" crea*a au oma o in! an a a c"a!ei app"e +u"ui !i ape"ea*a me ode a"e c"a!ei App"e a unci cand au "oc anumi e evenimen e , Di%eri e app"e +uri care %o"o!e!c aceea!i c"a!a %o"o!e!c in! an e di%eri e deci vom pu ea in roduce mai mu" e copii a"e app"e +u"ui in aceea!i pagina !i %iecare !e va compor a di%eri , PRINCIPA.E.E ACTIVITATI A.E APP.ET+URI.OR In "ocu" me odei main89 ) app"e +uri"e po!eda me ode care !un ape"a e "a apari ia anumi or evenimen e pe parcur!u" ru"arii app"e +u"ui , Un e3emp"u de a! %e" de me oda e! e pain 89 care e! e ape"a a ori de ca e ori %erea! ra app"e +u"ui re$uie a%i!a a !au rede!ena a , In mod pre! a$i"i ace! e me ode !un nu"e : e"e nu %ac prac ic nimic , De e3emp"u me oda pain 89 ) mo! eni a de "a c"a!a App"e ) e! e o me oda nu"a , Pen ru a a%i!a ceva in %erea! ra app"e +u"ui me oda pain 89 re$uie !upra!cri!a cu un compor amen care !a permi a a%i!area de e3 ) gra%ica !au a" e e"emen e , a, Ini ia"i*area

Ini ia"i*area apare o da a cu incarcarea app"e +u"ui , Ini ia"i*area poa e con! a in crearea o$iec e"or de care are nevoie app"e +u" ) !e area ! arii ini ia"e ) incarcarea unor imagini !au %on uri !au !e area uno parame ri , Pen ru a de%ini codu" de ini ia"i*are a" unui app"e re$uie !upra!cri!a me oda ini89 < pu$"ic void ini 89 C DD codu" !ur!a E $, Pornirea

Un app"e e! e porni dupa ini ia"i*are , Pornirea poa e aparea !i daca app"e +u" a %o! an erior opri , De e3emp"u un app"e e! e opri daca u i"i*a oru" $ro#!er+u"ui urmea*a o "ega ura ca re o a" a pagina !i e! e porni din nou a unci cand u i"i*a oru" revine in pagina care con ine app"e +u" , Pornirea poa e aparea de mai mu" e ori pe parcur!u" cic"u"ui de via a a" unui app"e ) in!a ini ia"i*area apare doar o da a , Pen ru a de%ini codu" de pornire a" unui app"e re$uie !upra!cri!a me oda ! ar 89 < pu$"ic void ! ar 89 C DD codu" !ur!a

E Codu" me odei ! ar 89 poa e con ine rimi erea anumi or me!a/e o$iec e"or e3 erne !au !peci%icarea in r+ un anumi mod a %ap u"ui ca app"e +u" i!i incepe ru"area , c, Oprirea

Oprirea !i pornirea merg una a"a uri de cea"a" a , Oprirea apare a unci cand u i"i*a oru" para!e! e pagina care con ine app"e +u" curen !au a unci cand app"e +u" !e opre! e !ingur ape"and me oda ! op89 , In mod pre! a$i"i orice %ire de e3ecu ie 8 5read! 9 pe care app"e +u" "e+a "an!a i!i vor con inua e3ecu ia !i dupa ce u i"i*a oru" para!e! e pagina , Prin !upra!criere me odei ! op89 pu em !u!penda e3ecu ia ace! or %ire !i "e pu em reporni daca app"e +u" e! e vi*ua"i*a din nou , In con inuare !e pre*in a o %orma a me odei ! op89 < pu$"ic void ! op89 C DD codu" !ur!a E d, Di! rugerea

Me oda de! roB89 permi e app"e +u"ui !a+!i %aca 2cura enie4 c5iar inain e de a !e e"i$era memoria a"oca a !au de a para!i $ro#!er+u" , Pu em %o"o!i acea! a me oda pen ru a di! ruge orice %ire de e3ecu ie !au pen ru a e"i$era orice a" e o$iec e care ru"ea*a , De o$icei nu !e !upra!crie me oda de! roB89 deca daca e3i! a anumi e re!ur!e care re$uie neapara e"i$era e ) cum ar %i %ire de e3ecu ie crea e de app"e , Pen ru a de%ini codu" de di! rugere a" unui app"e re$uie !upre!cri!a me oda de! roB89 < pu$"ic void de! roB89 C DD codu" !ur!a E In cur!uri"e an erioare a aparu un e"emen inrudi cu de! roB89 < me oda %ina"i*e89 , Di%eren a in re ace! e doua me ode con! a in %ap u" ca me oda de! roB89 !e ap"ica doar app"e +uri"or iar %ina"i*e89 e! e o me oda generica ) ce permi e unui o$iec de orice ip !a+!i e"i$ere*e re!ur!e"e , Java po!eda un recupera or au oma a" re!ur!e"or u i"i*a e 8 gar$age co""ec or 9 ) care admini! rea*a memoria in "ocu" no! ru , Ace! a recuperea*a memoria ocupa a 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 %oar e rar me ode ca de! roB89 !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 ) e c, De!enarea poa e aparea de %oar e mu" e ori pe parcur!u" cic"u"ui de via a a" unui app"e < o da a dupa ini ia"i*area app"e +u"ui ) a" a da a a unci cand %erea! ra $ro#!er+u"ui e! e adu!a in prim p"an ) a" a da a a unci cand %erea! ra $ro#!er+u"ui e! e mu a a !i a!a mai depar e , Pen ru a !e pu ea a%i!a ceva me oda pain 89 ) din !u$c"a!a noa! ra App"e ) re$uie !upra!cri!a , Me oda pain 89 ara a in %e"u" urma or < pu$"ic void pain 8Grap5ic! g9 C DD codu" !ur!a E Tre$uie !a o$!ervam ca ) !pre deo!e$ire de ce"e"a" e me ode de!cri!e an erior ) me oda pain 89 preia un argumen < o in! an a a c"a!ei Grap5ic! , Ace! o$iec e! e crea !i ran!mi! me odei pain 89 de ca re $ro#!er ) deci nu re$uie !a ne %acem pro$"eme "ega e de de%inirea !a , To u!i ) nu re$uie !a ui am !a impor am c"a!a Grap5ic! din pac5e u" /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 de a"ia concep u" 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 e3 end! /ava,app"e ,App"e C F< 0on %Gne# 0on 8HTime!RomanH)0on ,BO.D)?F9; I< J< pu$"ic void pain 8Grap5ic! moni or9 C '< moni or,!e 0on 8%9; &>< moni or,!e Co"or8Co"or,red9; &&< moni or,dra#1 ring8HGo 5ang a !a"ami ) IKm a "a!agna 5ogH)()@>9; &6< E &?< E Ace! app"e !upra!crie me oda pain 89 , Deoarece app"e +u" a%i!ea*a doar ca eva cuvin e pe ecran nu e! e nevoie de nici o ini ia"i*are , A! %e" nu e! e nevoie de me ode"e ! ar 89 ) ! op89 !au ini 89 , Me oda pain 89 e! e "ocu" unde !e %ace oa a rea$a , O$iec u" Grap5ic! ran!mi! me odei pain 89 pa! rea*a ! area !i! emu"ui gra%ic ) prin care !e cuno!c a ri$u e"e curen e a"e !upra%e ei de de!enare , 1 area mai con ine !i de a"ii privind %on u" curen !au cu"oarea %o"o!i a pen ru opera ii"e de de!enare , .inii"e ' !i &> de%ine!c %on u" !i cu"oarea %o"o!i e pen ru opera ii"e gra%ice , O$iec u" 0on e! e pa! ra in varia$i"a de in! an a % iar o$iec u" repre*en and cu"oarea ro!ie e! e memora in varia$i"a red a c"a!ei Co"or , .inia && %o"o!e! e %on u" !i cu"oarea curen e pen ru a de!ena !iru" 2Go 5ang a !a"ami ) IKm a "a!agna 5ogH in po*i ia ( ) @> , Reamin e!c ca po*i ia > pen ru 3 !i B e! e punc u" din ! anga : !u! a" !upra%e ei de de!enare a app"e +u"ui ) cu va"oarea B cre!cand in /o! a!a inca va"oarea @> dep"a!ea*a e3 u" in /o! , Daca imp"emen am in c"a!a me ode"e corec e pen ru app"e : ini 89 ) ! ar 89 ) ! op89 ) !au pain 89 : a unci app"e +u" no! ru va %unc iona corec %ara a avea nevoie de un punc de ! ar e3p"ici , 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 in roducem app"e +u" , App"e +uri"e !e in!erea*a in r+o pagina %o"o!ind e ic5e a -TM. Lapp"e M ) o comanda care %unc ionea*a a!emana or a" or e"emen e -TM. , E3i! a de a!emenea di%eri e u i"i are pen ru de*vo" area de pagini #e$ : ca Micro!o% 0ron Page !au Macromedia Dream#eaver : care po %i %o"o!i e pen ru 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 Lapp"e M e! e de a po*i iona app"e +u" no! ru in pagina #e$ !i de a con ro"a modu" cum ara a ace! a in re"a ie cu ce"e"a" e par i a"e paginii , Bro#!er+e"e compa i$i"e Java %o"o!e!c in%orma ia con inu a de acea! a e ic5e a pen ru a ga!i !i e3ecu a %i!iere"e compi"a e cu c"a!e"e app"e +u"ui , E ic5e a Lapp"e M e! e de %ap o e3 en!ie !pecia"a a "im$a/u"ui -TM. ) care permi e inc"uderea app"e + uri"or Java in pagini"e #e$ ; e ic5e a e! e !upor a a de oa e $ro#!er+e"e compa i$i"e Java , Mai /o! avem codu" !ur!a -TM. pen ru o pagina in care am in!era app"e +u" Pa"indrom < L5 m"M L5eadM

L i "eMPagina cu app"e LD i "eM LD5eadM L$odBM LpMPa"indromu" pre*en a e! e <L$rM Lapp"e codeG4Pa"indrom,c"a!!4 #id 5GF>> 5eig5 G&>>M Nu ave i $ro#!er compa i$i" Java LDapp"e M LD$odBM LD5 m"M Tag+u" Lapp"e M de mai !u! con ine rei a ri$u e e!en ia"e < + + + code + !peci%ica nume"e c"a!ei principa"e a app"e +u"ui #id 5 + !peci%ica "a imea %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 con ine c"a!a indica a de a ri$u u" CODE re$uie !a !e a%"e in ace"a!i direc or ca pagina #e$ care con ine app"e +u" ) cu e3cep ia ca*uri"or cand %o"o!im a ri$u u" CODEBA1E pen ru a !peci%ica un a" direc or , WIDT- !i -EIG-T !un a ri$u e nece!are deoarece $ro#!er+u" re$uie !a ! ie ca !pa iu !a a"oce app"e +u" in pagina , E! e u!or !a de!enam in r+o *ona e3 erioara %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 , In re e ic5e e"e Lapp"e M !i LDapp"e M po %i inc"u!e !i a" e e"emen e de pagina #e$ ) cum ar %i e3 !au imagini , Ace! ea !un a%i!a e in pagina #e$ doar de $ro#!er+e"e care nu !un compa i$i"e Java ; e! e in genera" $ine !a "e inc"udem deoarece u i"i*a orii !un a! %e" anun a i ca nu po vedea un app"e pen ru ca $ro#!er+u" "or nu e! e pu! "a curen , Daca nu !peci%icam nimic in re ace! e doua e ic5e e $ro#!er+e"e incompa i$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 compa i$i" Java vor vedea e3 u" < 2Nu ave i $ro#!er compa i$i" Java4 in "ocu" app"e +u"ui , Ce"e rei a ri$u e a"e ag+u"ui Lapp"e M pre*en a e mai !u! !un ce"e de $a*a ; o u!i ) e ic5e a Lapp"e M con ine !i a" e a ri$u e ) care po a/u a "a in egrarea )mai e%icien a a app"e +u"ui in ! ruc ura genera"a a paginii #e$ < a, a ri$u u" A.IGN

Ace! a ri$u de%ine! e modu" cum va %i a"inia app"e +u" in pagina #e$ ) re"a iv "a ce"e"a" e e"emen e a"e paginii ; a ri$u u" poa e "ua urma oare"e va"ori < + + + + + + + + + "e% + a"inia*a app"e +u" "a ! anga e3 u"ui care urmea*a in pagina dupa app"e rig5 + a"inia*a app"e +u" "a dreap a e3 u"ui care urmea*a in pagina dupa app"e e3 op + a"inia*a par ea !uperioara a app"e +u"ui cu par ea !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 e3 u"ui $a!e"ine + a"inia*a par ea in%erioara a app"e +u"ui cu "inia de $a*a a e3 u"ui $o om + ace"a!i "ucru ca !i $a!e"ine a$!$o om + a"inia*a par ea in%erioara a app"e +u"ui cu ce" mai de /o! e"emen de pe "inie

Pen ru a %ina"i*a %orma area !peci%ica prin a ri$u u" A.IGN ) pu em %o"o!i e ic5e a de erminare de rand L$rM ) impreuna cu a ri$u u" C.EAR ) ace! a din urma pu and "ua rei va"ori < + + "e% + con inua a%i!area re! u"ui paginii #e$ "a urma oarea margine "i$era din ! anga rig5 + con inua a%i!area re! u"ui paginii #e$ "a urma oarea margine "i$era din dreap a

+ $,

a"" + con inua a%i!area re! u"ui paginii #e$ "a urma oarea margine "i$era din ! anga !i din dreap a a ri$u e"e -1PACE 1I V1PACE

A ri$u e"e -1PACE !i V1PACE !un %o"o!i e pen ru a de ermina !pa iu" ) in numar de pi3e"i ) in re app"e !i e3 u" incon/ura or , -1PACE con ro"ea*a !pa iu" ori*on a" in ! anga !i in dreap a app"e +u"ui iar V1PACE con ro"ea*a !pa iu" ver ica" e3i! en dea!upra !i dede!up u" app"e +u"ui , c, CODE 1I CODEBA1E

Ace! e doua a ri$u e !un %o"o!i e pen ru a indica unde po %i ga!i e %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 a ri$u e !un %o"o!i e de un $ro#!er Java in momen u" in care incearca !a ru"e*e app"e +u" , CODE indica nume"e %i!ieru"ui care con ine c"a!a principa"a a app"e +u"ui , Cand CODE e! e %o"o!i %ara a ri$u u" op iona" CODEBA1E %i!ieru" care con ine c"a!a va %i cau a in ace"a!i "oc in care !e a%"a pagina #e$ care con ine app"e +u" , In cadru" a ri$u u"ui CODE re$uie !peci%ica a !i e3 en!ia ,c"a!! , A ri$u u" CODEBA1E !e %o"o!e! e pen ru a indica $ro#!er+u"ui !a cau e app"e +u" !i a" e %i!iere nece!are ru"arii ace! uia in r+un a" direc or , CODEBA1E indica un a" direc or !au c5iar un a" !i e de unde urmea*a a !e incarca c"a!e"e < Lapp"e codeG4C"a!aMea,c"a!!4 code$a!eG5 p<DD###,!i e,comDc"a!e/ava 5eig5 G@> #id 5G@>>M LDapp"e M Tre$uie men iona ca e ic5e a Lapp"e M e! e %o"o!i a !pecia" pen ru a in!era programe Java in pagini"e #e$ , In pre*en e3i! a !i a" e ipuri de programe care ru"ea*a in erac iv in r+o pagina , Pen ru a ra a oa e ace! e ipuri de programe %ara a %i nevoie de ca e o e ic5e a pen ru %iecare e3p"ici ) !peci%ica ii"e -TM. au in rodu! !i e ic5e a Lo$/ec M , Acea! a e ic5e a e! e %o"o!i a pen ru oa e o$iec e"e : programe in erac ive !au a" e e"emen e e3 erne : care po %i pre*en e drep par e a unei pagini #e$ , E ic5e a are urma oarea %orma < Lo$/ec c"a!!idG4/ava<C"a!a,c"a!!4 code$a!eG4c"a!e/ava4 5eig5 G@> #id 5G@>>M LDo$/ec M Trecerea de "a e ic5e a Lapp"e M "a Lo$/ec M pre!upune doar ca eva modi%icari < + + a ri$u u" code re$uie in"ocui cu c"a!!id ; in p"u! ) inain e de nume"e c"a!ei app"e +u"ui re$uie !peci%ica 2/ava<4 , e ic5e a Lapp"e M !e in"ocuie! e cu Lo$/ec M

In re! a ri$u e"e raman ace"ea!i , TRAN10ERU. DE PARAMETRI CATRE APP.ET+URI In ap"ica ii"e Java pu em ran!mi e parame ri me odei main89 !peci%icand argumen e in "inia de comanda , Apoi pu em pre"ucra ace! i parame ri in corpu" c"a!ei ) ap"ica ia compor andu+!e core!pun*a or argumen e"or primi e , In !c5im$ app"e +uri"e nu po!eda o "inie de comanda , App"e +uri"e po o$ ine di%eri e da e de in rare din %i!ieru" -TM. care con ine e ic5e a Lapp"e M !au Lo$/ec M ) %o"o!ind parame ri , Pen ru a de%ini !i ra a parame ri in r+un app"e avem nevoie de doua "ucruri <

+ +

o e ic5e a de parame ru in %i!ieru" -TM. codu" din cadru" app"e +u"ui care !a ra e*e ace! i parame ri

Parame rii unui app"e !un compu!i din doua par i < un nume ) care e! e a"e! de dumneavoa! ra ) !i o va"oare ) care de ermina va"oarea re!pec ivu"ui parame ru , De e3emp"u ) pu em indica in r+un app"e cu"oarea unui e3 %o"o!ind un parame ru cu nume"e cu"oare !i va"oarea ro!u , Pu em de ermina vi e*a de deru"are a unei anima ii %o"o!ind un parame ru cu nume"e vi e*a !i o anumi a va"oare , In %i!ieru" -TM. care con ine app"e +u" ) %iecare parame ru e! e indica %o"o!ind e ic5e a LparamM ) care con ine doua a ri$u e ) pen ru nume !i va"oare ) denumi e NAME !i VA.UE , E ic5e a LparamM !e in roduce in re e ic5e e"e Lapp"e M de incepu !i de !%ar!i de con ainer < Lapp"e cadeG4C"a!a,c"a!!4 #id 5G&>> 5eig5 G&>>M Lparam nameG%on va"ueGTime!RomanM Lparam nameGdim va"ueG6@M Aici e! e un app"e Java LDapp"e M E3emp"u" de mai !u! de%ine! e doi parame ri pen ru 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 e ic5e ei LparamM e! e aceea!i pen ru app"e +uri"e care %o"o!e!c ag+u" o$/ec M in "oc de Lapp"e M , Parame ri !un ran!mi!i app"e +u"ui "a incarcarea ace! uia , In me oda ini 89 a app"e +u"ui pu em o$ ine ace! i parame ri %o"o!ind me oda ge Parame er89 , Acea! a preia ca argumen un !ir ce repre*in a nume"e parame ru"ui cau a !i in oarce un !ir care con ine va"oarea re!pec ivu"ui parame ru , Pen ru a o$ ine va"oarea parame ru"ui %on din %i!ieru" -TM. de mai !u! ) me oda ini 89 ar re$ui !a con ina < 1 ring nume0on G ge Parame er82%on 49; Nume"e parame ri"or !peci%ica i in e ic5e a LparamM !i nume"e parame ri"or me odei ge Parame er89 re$uie !a %ie iden ice ) inc"u!iv ma/u!cu"e"e !au minu!cu"e"e %o"o!i e , Cu a" e cuvin e ) Lparam nameGpope!cu4M e! e di%eri de Lparam nameGPope!cuM , Re ine i ca daca parame ru" a! ep a nu a %o! !peci%ica in %i!ieru" -TM. ) me oda ge Parame er89 in oarce va"oarea nu"" , De o$icei ) ar re$ui e! a a va"oarea nu"" a parame ru"ui !i !a o%erim o va"oare imp"ici a , ca in e3emp"u" de mai /o! < i% 8nume0on GGnu"" 9 nume0on G4Courier4; Mai re$uie reamin i din nou ca me oda ge Parame er89 re urnea*a un !ir ; daca dorim ca parame ru" !a %ie de a" ip de o$iec !au da a re$uie !a i" conver im e3p"ici , Pen ru a ra a parame ru" dim !i a+" a ri$ui unei varia$i"e in regi ) numi a dimen!iunea ) am pu ea %o"o!i urma oru" cod < in dimen!iunea ; 1 ring ! G ge Parame er82dim49; i% 8!GGnu""9 dimen!iunea G&6; e"!e dimen!iunea G In eger,par!eIn 8!9; In con inuare !a vedem un e3emp"u de app"e care %o"o!e! e acea! a e5nica , Vom modi%ica app"e +u" Pa"indrom pen ru a a%i!a a" e e3 e , Nume"e e! e ran!mi! app"e +u"ui prin r+un parame ru -TM. , Proiec u" 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! ra a va"oarea parame ru"ui pa"indrom , Deoarece vom %o"o!i ace! nume in cadru" app"e +u"ui ) vom adauga o varia$i"a de in! an a dupa nume"e varia$i"ei pen ru %on <

1 ring pa"indrom; Pen ru a !e a va"oarea nume"ui ) re$uie !a o$ inem parame ru" , Ce" mai $un "oc de o$ inere a parame ri"or app"e +u"ui e! e in cadru" me odei ini 89 , Me oda ini 89 e! e de%ini a a!emana or cu pain 89 : pu$"ica ) %ara argumen e !i %ara ip de re ur , De a!emenea re$uie !a ne a!iguram ca e! am va"oarea nu"" a parame ru"ui , Daca pa"indromu" nu e! e !peci%ica !e va a%i!a imp"ici e3 u" 2Denni! and Edna !inned4 ) ca in e3emp"u" de mai /o! < pu$"ic void ini 89 C pa"indrom G ge Parame er82pa"indrom49; i% 8pa"indromGGnu""9 pa"indromG4Denni! and Edna !inned4; E O da a adauga a acea! a me oda o ce na mai ramane e! e !a modi%icam me oda pain 89 , Me oda origina"a dra#1 ring89 ara a a! %e" < ecran,dra#1 ring82Go 5ang a !a"ami ) INm a "a!agna 5og,4)()@>9; Pen ru a de!ena nou" !ir pe care i" ! ocam in varia$i"a de in! an a pa"indrom ) o ceea ce re$uie !a %acem e! e !a in"ocuim varia$i"a cu !iru" < ecran,dra#1 ring8pa"indrom)()@>9; In con inuare pre*en am "i! ingu" comp"e a" ap"ica iei app"e Pa"indromNou < &< impor /ava,a# ,Grap5ic!; 6< impor /ava,a# ,Co"or; ?< impor /ava,a# ,0on ; @< (< pu$"ic c"a!! Pa"indromNou e3 end! /ava,app"e ,App"e C F< 0on %Gne# 0on 8HTime!RomanH)0on ,BO.D)?F9; I< 1 ring pa"indrom; J< pu$"ic void pain 8Grap5ic! ecran9 C '< ecran,!e 0on 8%9; &>< ecran,!e Co"or8Co"or,red9; &&< ecran,dra#1 ring8pa"indrom)()@>9; &6< E &?< pu$"ic void ini 89 C &@, pa"indrom G ge Parame er82pa"indrom49; &(, i% 8pa"indromGGnu""9 pa"indromG4Denni! and Edna !inned4; &F< E &I< E In con inuare vom crea !i %i!ieru" -TM. care va con ine ace! app"e < L5 m"M L5eadM L i "eMPagina noua cu pa"indromLD i "eM LD5eadM L$odBM LpM Lapp"e codeG4Pa"indromNou,c"a!!4 #id 5GF>> 5eig5 G&>>M Lparam nameGpa"indrom va"ueG4No !ir pre%er pri!on4M Bro#!er+u" nu !upor a Java

'

LDapp"e M LD$odBM LD5 m"M Daca nu e! e !peci%ica a nici o va"oare pen ru parame ru" pa"indrom e3 u" imp"ici e! e 2Denni! and Edna !inned4 , AMP.A1AREA APP.ET+URI.OR IN WEB Dupa ce am o$ inu un app"e care %unc ionea*a core!pun*a or pu em %ace app"e +u" di!poni$i" in Wor"d Wide We$ , App"e +uri"e Java !un in rodu!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 in r+un direc or acce!i$i" !erveru"ui #e$ : de ce"e mai mu" e ori in ace"a!i direc or care con ine !i pagina #e$ ce ing"o$ea*a app"e +u" , 1erveru" #e$ re$uie con%igura pen ru a o%eri app"e +uri Java $ro#!er+e"or ce !upor a ace! "im$a/ , E3i! a ca eva %i!iere ce re$uie incarca e pe un !erver #e$ < + + pagina #e$ ce con ine app"e +u" oa e %i!iere"e ,c"a!! %o"o!i e de app"e !i care nu %ac par e din $i$"io eca 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"emen e mu" imedia vom pu ea !a pu$"icam %ara pro$"eme !i app"e +uri Java pe !i e+u" no! ru , AR-IVE JAVA Moda"i a ea ! andard de amp"a!are a unui app"e Java in r+o pagina #e$ e! e de a %o"o!i e ic5e e"e Lapp"e M !i Lo$/ec M pen ru a indica nume"e c"a!ei primare a app"e +u"ui , 1e %o"o!e! e apoi un $ro#!er compa i$i" Java care ran!%era !i e3ecu a app"e +u" , Orice a" e c"a!e !au %i!iere %o"o!i e de app"e !un ran!%era e 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 e3 erna ) un %i!ier imagine ) audio ) e3 !au orice a" ceva : nece!i a o cone3iune !epara a de "a $ro#!er "a !erveru" #e$ care con ine %i!ieru" , Deoarece in erva"u" de imp nece!ar pen ru a ! a$i"i con3iuni"e ace! ea nu e! e neg"i/a$i" ace! "ucru poa e mari impu" o a" pen ru ran!%eru" app"e +u"ui !i %i!iere"or !a"e pana "a dura e inaccep a$i"e , 1o"u ia ace! ei pro$"eme e! e crearea unei ar5ive Java ) adica un %i!ier JAR , O ar5iva Java repre*in a o co"ec ie de c"a!e Java !i a" e %i!iere ) impac5e a e in r+un !ingur %i!ier , 0o"o!ind o ar5iva Java $ro#!er+ u"ui ii e! e !u%icien a o !ingura cone3iune "a !erveru" #e$ , Reducand numaru" de %i!iere ran!%era e de pe !erver appe" +u" poa e %i incarca !i ru"a mai rapid , Ar5ive"e Java po %i !i comprima e ) !ca*andu+"e a! %e" dimen!iunea !i mic!orandu+!e impu" de ran!%er : dar in !c5im$ va dura ceva mai mu" din par ea $ro#!er+u"ui decomprimarea inain e de ru"are , Pen ru a crea ar5ive JAR pu em %o"o!i u i"i aru" JAVA denumi /ar ) care poa e impac5e a !au de!pac5e a %i!iere"e inDdin ar5ive Java , Urma oarea comanda impac5e ea*a oa e c"a!e"e !i imagini"e ,gi% din r+un direc or in r+o !ingura ar5iva Java ) denumi a Anima ,/ar < /ar c% Anima ,/ar O,c"a!! O,gi% Argumen u" c% !peci%ica doua op iuni in "inie de comanda care !un %o"o!i e de programu" /ar , Op iunea c indica %ap u" ca ar5iva Java re$uie crea a iar % ara a ca unu" din re urma oare"e argumen e din "inia de comanda repre*in a nume"e ar5ivei ,

&>

Pu em ) de a!emenea ) adauga in r+o ar5iva Java a" e %i!iere %o"o!ind comanda < /ar c% 1mi"eB,/ar 15o#1mi"eB,c"a!! 15o#1mi"eB,5 m" !pin5ead,gi% Ru"and u i"i aru" /ar %ara nici un argumen vom o$ ine "i! a de op iuni care po %i %o"o!i e , Dupa ce am crea ar5iva Java ) in e ic5e a Lapp"e M !e %o"o!e! e a ri$u u" ARC-IVE pen ru a indica "ocu" unde !e ga!e! e ar5iva , Pu em %o"o!i ar5iva Java in %e"u" urma or < Lapp"e codeG15o#1mi"eB,c"a!! arc5iveG1mi"eB,/ar #id 5G@( 5eig5 G@6M LDapp"e M Acea! a e ic5e a !peci%ica %ap u" ca ar5iva numi a 1mi"eB,/ar con ine %i!iere"e %o"o!i e de app"e , Bro#!er+e"e !i u i"i are"e de navigare care !upor a %i!iere JAR ! iu !a cau e in in erioru" ar5ive"or %i!iere"e nece!are pe impu" ru"arii app"e +u"ui , OB1 < cu oa e ca o ar5iva Java poa e con ine %i!iere c"a!a a ri$u u" ARC-IVE nu pre!upune e"iminarea a ri$u u"ui CODE , Pen ru a o incarca $ro#!er+u" re$uie o u!i !a ! ie nume"e c"a!ei principa"e a app"e +u"ui , A.TE 0ORMATE DE AR-IVARE Ver!iuni"e curen e a"e ce"or mai ra!pandi e $ro#!er+e : a"e %irme"or Micro!o% !i Ne !cape : !upor a pe "anga ar5ive JAR !i %orma e recuno!cu e ca =IP !au CAB , E3emp"u" de mai /o! %o"o!e! e o ar5iva =IP < Lapp"e codeGApp"e u"Meu,c"a!! arc5iveGu i"e,*ip #id 5G&>> 5eig5 G&>>M LDapp"e M Micro!o% a in rodu! un u i"i ar CABarc care rea"i*ea*a ar5ive in %orma u" CAB , Pen ru a !peci%ica acea! a ar5iva in codu" -TM. !e %o"o!e! e e ic5e a LparamM impreuna cu un parame ru numi ca$$a!e ) va"oarea ace! uia %iind nume"e %i!ieru"ui ca$ , Ia a un e3emp"u < Lapp"e codeGApp"e u"Meu,c"a!! #id 5G&>> 5eig5 G&>>M Lparam nameGca$$a!e va"ueGApp"e u"Meu,ca$M LDapp"e M Ca !i a ri$u u" ARC-IVE ) parame ru" ca$$a!e va %i ignora de $ro#!er+e"e #e$ care nu !upor a %o"o!irea !a ,

&&

S-ar putea să vă placă și