CAP. 11. JAVA ŞI JAVASCRIPT

 

11.1. Noţiuni generale

 

Vom începe acest capitol prin a face distincţia Java şi JavaScript.

Java este un limbaj de programare orientat-obiect, ce se adresează programatorilor avansaţi putând fi rulat fără modificări pe orice computer (PC, PDA etc) pe care există instalată o "maşină virtuală" Java (JVM=Java Virtual Machine), fiind extrem de potrivit, deşi nu exclusiv, pentru Internet.

Pe de altă parte, JavaScript este un limbaj de programare orientat-obiect bazat pe conceptul prototipurilor. Limbajul este binecunoscut pentru folosirea în construirea siturilor web, dar de asemenea este folosit pentru acesul la obiecte încastrate (embedded objects) în alte aplicaţii.

În ciuda numelui şi a unor oarecare similarităţi în sintaxă, între JavaScript şi limbajul Java nu există nici o legătură. Ca şi Java, JavaScript are o sintaxă asemănătoare cu cea a limbajului C, dar are mai multe în comun cu Limbajul de Autoprogramare decât cu Java.

 

11.2. Limbajul JAVA

 

Java este un limbaj de programare conceput de Sun Microsystems la începutul anilor 90.

A fost conceput ca un limbaj de programare orientat-obiect foarte puternic,  "cross-platform" şi "device-independent", ceea ce înseamnă că programul compilat trebuie să ruleze atât pe PC-uri, MAC-uri sau calculatoare cu platformă UNIX.

Browser-ele creează un mediu pentru rularea applet-urilor Java, numit Java Virtual Machine. Acesta oferă independenţa platformei pentru applet-urile Java.

Denumirea de applet se referă la orice mini-aplicaţie creată cu ajutorul limbajului Java. Creare unui applet nu face obiectul acestui ghid. Applet-urile sunt programe compilate separate ce au extensia ".class". Acestea sunt descărcate împreună cu pagina web prin folosirea tag-ului <APPLET>.

Sintaxa HTML pentru folosirea tag-ului <APPLET> şi a tag-ului său asociat <PARAM>, este următoarea:

 

< APPLET

          [CODEBASE = directorApplet]

          [CODE = clasaApplet]

          [ALT = textAlternativ]

          [NAME = numeInstanţăApplet]

          WIDTH = lăţimeInPixeli

          HEIGHT = înălţimeInPixeli

          [ALIGN = aliniere]

          [VSPACE = spaţiuVertical]

          [HSPACE = spaţiuOrizontal] >

[< PARAM NAME = numeParametru_1 VALUE = valoare_1 >]

          . . .

[< PARAM NAME = numeParametru_n VALUE = valoare_n >]

 [text HTML alternativ]

</APPLET>

 

Atributele puse între paranteze pătrate sunt opţionale. Semnificaţia atributelor este următoarea:

 

Atribut

Valoare

Descriere

align

left

right

top

bottom

middle

baseline

texttop

absmiddle

absbottom

Semnifică modalitatea de aliniere a appletul-ui în pagina Web, semnificaţiile lor fiind aceleaşi ca şi la tag-ul <IMG>.

alt

text

Specifică textul ce trebuie afişat dacă browser-ul înţelege tag-ul APPLET dar nu poate rula applet-uri Java.

code

URL

Specifică numele fişierului ce conţine clasa principală a applet-ului. Acesta va fi căutat în directorul specificat de CODEBASE.

codebase

URL

Specifică URL-ul în care se găseşte clasa applet-ului. Uzual se exprimă relativ la directorul documentului HTML. În cazul în care lipseşte, se consideră implicit URL-ul documentului.

height

pixeli

Specifică înălţimea suprafeţei în care va fi afişat applet-ul. Este un atribut obligatoriu.

hspace

pixeli

Specifică numărul de pixeli dintre applet şi marginile orizontale ale suprafeţei de afişare.

name

text

Oferă posibilitatea de a da un nume respectivei instanţe a applet-ului, astfel încât mai multe applet-uri aflate pe aceeaşi pagină să comunice între ele folosindu-se de numele lor.

vspace

pixeli

Specifică numărul de pixeli dintre applet şi marginile verticale ale suprafeţei de afişare.

width

pixeli

Specifică lăţimea suprafeţei în care va fi afişat applet-ul. Este un atribut obligatoriu.

 

< PARAM NAME = numeParametru1 VALUE = valoare1 >

Tag-urile <PARAM> sunt folosite pentru specificarea parametrilor unui applet. Aceşti parametri permit utilizatorului să personalizeze aspectul sau comportarea unui applet fara a-i schimba codul si recompila clasele.

 

text HTML alternativ

Este textul ce va fi afişat în cazul în care browser-ul nu înţelege tag-ul <APPLET>. Browser-ele care înţeleg Java vor ignora acest text.

 

11.3. Limbajul JAVASCRIPT

 

JavaScript vă permite să creaţi o interfaţă activă cu utilizatorul, să dea o impresie vizuală plăcută în timp ce navigaţi prin paginile site-ului. Puteţi verifica validitatea informaţiilor introduse într-un formular înainte ca datele să fie trimise către server. Puteţi face calcule matematice, crea pagini HTML dinamice, personalizate în funcţie de opţiunile utilizatorului sau al browser-ului.

JavaScript controlează browser-ul, şi prin intermediul scripturilor puteţi deschide ferestre noi, puteţi afişa mesaje de avertizare şi puteţi pune mesaje în bara de stare a ferestrei browserului. Puteţi genera ceasuri, calendare şi documente cu timpul înscris. Puteţi chiar verifica prezenţa plug-in-urilor în browser, şi puteţi redirecta utilizatorul spre o pagină diferită în cazul în care browserul nu are un anumit plug-in.

O menţiune importantă: programele care rulează pe calculatorul utilizatorului sunt numite aplicaţii client-side (aflate pe partea de client), şi programele care rulează pe server (inclusiv CGI-urile) sunt numite aplicaţii server-side (aflate pe partea de server)

Deoarece JavaScript rulează pe calculatorul dumneavoastră, i-au fost impuse o serie de limitări, majoritatea din raţiuni de securitate, şi anume:

- nu permite citirea sau scrierea de fişiere pe calculatorul utilizatorului. Singura excepţie este permisiunea de  a scrie în directorul de cookie-uri al browserului, dar şi aici sunt anumite limite.

- nu permite citirea/scrierea de fişiere pe server. Alternativa este să rulaţi pe server un program care să preia datele trimise de script şi să le scrie pe server (un CGI, scris într-un limbaj precum Perl sau PHP, sau un program Java.

- un script JavaScript nu poate închide o fereastră de browser care nu a fost deschisă de el. Astfel se evită situaţia când intraţi pe un site şi vi se închid celelalte ferestre active care conţin alte site-uri...

- nu poate citi informaţii dintr-un browser care conţine o pagina web de pe un alt server, ca să nu puteţi afla pe ce site-uri navigează utilizatorul.

Un script JavaScript este un program inclus într-o pagina HTML. Deoarece este încadrat de tag-ul <script>, textul scriptului nu apare pe ecran, dar este rulat şi interpretat de către browser. Tag-ul <script> este prezent cel mai frecvent în secţiunea <head> a paginii HTML, deşi se pot pune şi în secţiunea <body>. De obicei, scripturile care urmează să afişeze mesaje pe ecran sunt scrise în <body>.

        Vă prezentăm în continuare o listă a atributelor ce pot fi adăugate tag-urilor HTML pentru a defini diferite acţiuni:

       

-         Acţiuni legate de ferestre

 

Valabile numai în elementele <BODY> şi <FRAMESET>

 

Atribut

Valoare

Descriere

onload

script

Scriptul ce va fi rulat la încărcarea documentului

onunload

script

Scriptul ce va fi rulat la închiderea documentului

 

-         Acţiuni legate de formulare

 

Valabile numai în elementul <FORM>

 

Atribut

Valoare

Descriere

onchange

script

Scriptul ce va fi rulat când se elementul se schimbă

onsubmit

script

Scriptul ce va fi rulat la trimiterea formularului

onreset

script

Scriptul ce va fi rulat la resetarea formularului

onselect

script

Scriptul ce va fi rulat la selectarea elementului

onblur

script

Scriptul ce va fi rulat la pierderea focalizării asupra elementului

onfocus

script

Scriptul ce va fi rulat la focalizarea asupra elementului

 

 

-         Acţiuni legate de tastatură

 

Nu sunt valabile în elementele <BASE>, <BDO>, <BR>, <FRAME>, <FRAMESET>, <HEAD>, <HTML>, <IFRAME>, <META>, <PARAM>, <SCRIPT>, <STYLE> şi <TITLE>.

 

Atribut

Valoare

Descriere

onkeydown

script

Scriptul ce va fi rulat când este apăsată o tastă

onkeypress

script

Scriptul ce va fi rulat când este apăsată  şi eliberată o tastă

onkeyup

script

Scriptul ce va fi rulat când este eliberată o tastă

 

 

 

-         Acţiuni legate de mouse

 

Nu sunt valabile în elementele <BASE>, <BDO>, <BR>, <FRAME>, <FRAMESET>, <HEAD>, <HTML>, <IFRAME>, <META>, <PARAM>, <SCRIPT>, <STYLE> şi <TITLE>.

 

Atribut

Valoare

Descriere

onclick

script

Scriptul ce va fi rulat când se face click cu mouse-ul

ondblclick

script

Scriptul ce va fi rulat când se face dublu-click cu mouse-ul

onmousedown

script

Scriptul ce va fi rulat când este apăsat butonul mouse-ului

onmousemove

script

Scriptul ce va fi rulat când este mişcat cursorul de la mouse

onmouseout

script

Scriptul ce va fi rulat când cursorul de la mouse este mutat în afara unui element

onmouseover

script

Scriptul ce va fi rulat când cursorul de la mouse este mutat asupra unui element

onmouseup

script

Scriptul ce va fi rulat când este eliberat butonul mouse-ului

 

 

11.4. Aplicaţie practică

 

Pentru a exemplifica cele arătate mai sus, vom crea un fişier test11.html ce va conţine două applet-uri Java şi un script Javascript.

 

<HTML>

<HEAD>

<TITLE>Java si Javascript</TITLE>

</HEAD>

<BODY>

<P ALIGN="center"> Iata un applet simplu ce reproduce functiile unui calculator.<BR><BR>

<APPLET CODE="AdderApplet.class" WIDTH="175" HEIGHT="175">

</APPLET><BR><BR>

Iata un applet ce reproduce un calendar si foloseste diversi parametri.<BR><BR>

<APPLET CODEBASE="C:\Ghid programare HTML\Teste" CODE="tcaldate.class" WIDTH="200" HEIGHT="170">

  <PARAM NAME="font" VALUE="Arial">

  <PARAM NAME="fontsize" VALUE="12">

  <PARAM NAME="fontstyle" VALUE="1">

  <PARAM NAME="bgcolor" VALUE="13684944">

  <PARAM NAME="bgcolor2" VALUE="14737663">

  <PARAM NAME="bgcolor3" VALUE="400">

  <PARAM NAME="_min" VALUE="01 Ian 2008">

  <PARAM NAME="current" VALUE="1z5 zzIan 08">

  <PARAM NAME="_max" VALUE="31 Ian 2008">

  <PARAM NAME="t_col1" VALUE="400">

  <PARAM NAME="t_col2" VALUE="8421520">

  <PARAM NAME="t_col3" VALUE="14737663">

</APPLET><BR><BR>

Iata un script ce schimba doua imagini intre ele in functie de pozitia mouse-ului.<BR><BR>

 

<SCRIPT LANGUAGE="JavaScript">

<!-- Acest text nu va fi afisat de browserele ce nu suporta JavaScript

image_1aon = new Image(150, 50);

image_1aon.src = "picture1b.gif";

image_1aoff = new Image(150, 50);

image_1aoff.src = "picture1.gif";

// Functii

function

img_act(imgName) {

imgon = eval(imgName + "on.src");

document [imgName].src = imgon;

}

function

img_inact(imgName) {

imgoff = eval(imgName + "off.src");

document [imgName].src = imgoff;

}

--></SCRIPT>

 

<A HREF="test11.html" ONMOUSEOVER="img_act('image_1a')"

ONMOUSEOUT="img_inact('image_1a')"><IMG

SRC="picture1b.gif" BORDER="0"

WIDTH="80" HEIGHT="50" NAME="image_1a"></A>

</P>

</BODY>

</HTML>

 

 

 

 

 

Rezultatul afişat în browser-ul IE va fi următorul: