Tehnologia JAVA- JDK 1.5 (Java developer's kit )




Tehnologia Java este limbaj de programare dar si o platforma.
1.Limbajul de programare Java este este un limbaj orientat obiectula, bazat pe clase si concurrent. Un limbaj de nivel inalt caracterizat prin oricare din urmatoarele cuvinte cheie:
. Simplu . Arhitectura neutra
. Orientat obiect . Portabil
. Distribuit . Performanta ridicata
. Multithreaded . Robust
. Dinamic . Sigur
In limbajul java, toate codurile sursa sunt scrise intr-un fisier text si salvate cu extensia .java. Fisierele surse sunt compilate in fisiere .class de catre complilatorul Java. Aceste fisiere .class nu sunt compatibile cu procesorul, continand bytecodes- limbajul masina pentru Java Virtual Machine(JVM).

2.Platforma Java
Prin platforma se intelege un mediu software sau hardware in care se ruleaza programe. Exemple de astfel de platforme sunt Microsoft Windows, Linux, Solaris OS. Cele mai multe platforme sunt o combinatie intre sistemul de operare si hardware.
Platforma Java difera fata de celelalte platforme prin faptul ca este o platforma bazata numai pe software si care ruleaza pe alte tipuri de platforme.
Platforma Java are 2 componente:
. Java Virtual Machine
. Java Application Programming Interface (API)
API este o colectie de componente software care ofera posibilitati nelimitate cum ar fi interfete grafice (GUI). Acestea sunt grupate in librarii cu clase asemanatoare numite packages




Avand un mediu independent, Java poate fi uneori mai incet, dar din cauza compilatoarelor si a tehnologiilor "virtual machine" avansate, creste mult performanta.
3. JDBC (Java Database Connectivity)
Este o interfata API oferita de JAVA pentru a permite accesul la baze de date, astfel incat programele JAVA pot sa interactioneze cu o baze de date SQL. Aceasta ofera posibilitate programelor Java sa execute statement-uri SQL. Deoarece toate sistemele de management a bazelor de date( DBMS) suporta SQL si deoarece Java insasi ruleaza pe aproape toate pratformele, JDBC face posibila scrierea unei singure aplicati de baze de date care sa ruleze pe diferite platforme si sa interactioneze cu diferite DBMS -uri.
JDBC introduce un layer de mijloc, numit driver de baze de date, intre aplicatie si DBMS. Rolul acestui layer este acela de a translata "querie-urile" aplicatiilor in comenzii pe care DBMS-urile le inteleg.
JDBC este similar cu ODBC (Open DataBase Connectivity), dar este destinat special pentru programele java, pe cand ODBC este un limbaj independent.
Web browser Nivel de prezentare




Web server Interfata JSP
Obiecte orientate spre IU
Obiecte orientate spre date



Server de baze de date Nivel de date
Primul pas pentru realizarea legaturii dintre aplicatie si baza de date este stabilirea conexiunii. Aceasta implica doi pasi:
- incarcarea driverului
- realizarea conexiunii

Incarcarea driverului

Inaintea incarcarii driverului acesta trebuie instalat pe hostul pe care dorim sa lucram, acest lucru se realizeaza doar prin copierea acestuia fara sa fie nevoie de nici o configurare .
Incarcarea driverului sau a driverelor pe care dorim sa le folosim este foarte simpla si implica doar o linie de cod:
Class.forName(\"jdbc.DriverXYZ\");
-unde jdbc.DriverXYZ este numele clasei care trebuie incarcat.

Realizarea conexiunii

Al doilea pas in stabilirea conexiunii este acela de realizarea a conexiunii, lucru care se poate face numai daca exista un driver corespunzator:
Connection con = DriverManager.getConnection(url,
\"myLogin\", \"myPassword\");

Cel mai important parametru este url. In functie de tipul driverului folosit sau in functie de tipul serverului de baze de date pot sa existe mai multe variante.
Daca folosim driver de bridge JDBC-ODBC se va folosi
jdbc:odbc://localhost/nume_baza_de_date
iar daca se foloseste un driver realizat de un alt dezvoltator , documentatia aferenta va preciza url care trebuie furnizat.
Conexiunea returnata de metoda DriverManager.getConnection este o conexiune deschisa care poate fi folosita pentru crearea de statementuri JDBC care transmit statementurile SQL catre DBMS.


Crearea de "statementuri" JDBC

Un obiect "statement" este ceea ce trimite statementul SQL catre DBMS. Trebuie creat
un astfel de obiect si apoi executat, punand la dispozitie metoda adecvata
Statement stmt = con.createStatement();
stmt.executeUpdate(\"INSERT INTO .... VALUES (.....)\");

Pentru fiecare tip de server in parte exista propriul driver, impreuna cu documentatia aferenta, care specifica anumite informatii care trebuie luate in calcul ( exemplu paramentu url). In ceea ce priveste realizarea conexiunii si a transmiterii de informatie pasii se parcurg la fel.
4.Servlet
Servlet-urile sunt module de cod Java care ruleaza intr-o aplicatie server cu scopul de a raspunde la cererea clientului. Servlet-urile nu sunt legate de un anumit protocol client/server dar sunt in mod usual folosite cu HTTP-uri si Servletul este adesea folosit cu intelesul de \"HTTP Servlet\".
Servleturile sunt componente software gestionate de un container care genereaza continut in mod dinamic. Acest container de servlet este o parte a serverului de Web sau a serverului de aplicatii care ofera servicii pentru comunicarea dintre navigator si servlet. Aceste servicii pot fi : prelucrarea cererilor, formularea raspunsului, stabilirea de restictii pentru servlet, crearea, invocarea si distrugerea servlet-urilor.
Constructia de pagini dinamice este utila din mai multe puncte de vedere: - paginile de web sunt bazate pe date transmise de utilizator - datele se schimba frecvent - paginile de web foloseste informatii in baze de date sau din alte surse
Pentru crearea unui servlet trebuie sa implementam interfata Servlet sau sa extindem una din clasele GenericServlet sau HTTPServlet. Metodele utilizate sunt init(), service() si destroy().
Facilitatile aduse de Servleturi in comparatie cu CGI-urile(Commun Gateway Interface) sunt : mai multa eficienta, mai usor de folosit, mai multa portabilitate si mai ieftin.
5.Java Server Pages -JSP
Java Server Pages (JSP) este o tehnologie care permite realizarea unei combinarii intre HTML-ul static si HTML-ul generat dynamic, simplificarea sarcinii de contructie a aplicatiilor web care lucreaza cu o mare varietate de servere de web, aplicatii web,browsere si unelte de dezvoltare.
Tehnologia JSP permite dezvoltatorilor de web si designerilor sa dezvolte si sa intretina pagini web dinamice ale sistemelor intr-un mod foarte usor. Defapt paginile JSP sunt compilate in servlet-uri inainte sa fie folosite, astfel ca JSP-urile au toate avantajele servlet-urilor, incluzand acces la Java API.
Avantajele puse la dispozitie de JSP-uri :
. vs. Active Server Pages (ASP). ASP este tehnologie similara cu JSP-ul dar este de la Microsoft. JSP-ulurilor au doua avantaje. Primul este acela ca partea dynamica este scrisa in Java si nu in Visual Basic sau alt limbaj microsoft, prin urmare este mai usor de utilizat. Al doilea avantaj este acela ca este portabil in alte sisteme de operare si alte servere diferite de cele Microsoft
. vs. Pure Servlets. JSP nu ofera nimic care sa nu poti sa faci cu servleturi, dar este mult mai convenabil sa scrii sau sa modifici HTML-uri decat sa ai mii de linii de cod care sa genereze HTML-urile. In plus, prin separarea interfetei de continut poti sa oferi diferite sarcini(taskuri) la diferiti utilizatori.
. vs. Server-Side Includes (SSI). SSI este o tehnologie care se ocupa cu includerea unor piese externe in pagini Web statice. JSP-urile sunt mai bune deoarece te lasa sa folosesti servleturile in locul unor programe separate care sa genereze partea dinamica. Mai mult SSI nu poate fi folosit pentru programe reale care folosesc date de tip form sau conexiuni la baze de date.
. vs. JavaScript. JavaScript can generate HTML dynamically on the client. This is a useful capability, but only handles situations where the dynamic information is based on the client\'s environment. With the exception of cookies, HTTP and form submission data is not available to JavaScript. And, since it runs on the client, JavaScript can\'t access server-side resources like databases, catalogs, pricing information, and the like.
. vs. HTML static. HTML-ul nu poate sa contina informatii dinamice ceea ce face ca JSP-ul sa fie cem mai usor si mai convenabil de utilizat.

Daca servlet-urile sunt clase care genereaza documente Web, JSP-urile sunt documente Web care contin secvente de cod Java. Prin urmare JSP-urile sunt considerate ca o extensie a paginilor Web obisnuite.
Tehnologia JSP permite definirea de biblioteci de noi tag-uri (similare celor din XHTML ) de catre programator. Aceste biblioteci pot fi utilizate ulterior si in cadrul altor aplicatii. Mai mult, separa rolul programatorului si designerului: programatorul va stabili care sunt tag-urile, iar designerul le va include in documentatia Web, aceasta nu va mai lucra cu cod Java. Astfel se separa partea de functionalitate ( motorul aplicatiei) de partea de vizualizare (interfata cu utilizatorul).