C.V.

 
 

       3 Containere Web


       Un client web este caracterizat de urmatoarele elemente: un browser web sau o aplicatie similara care gestioneaza modul de interactiune cu utilizatorul; HTML ( cu JavaScript si\sau DHTML) sau XML (cu XSLT) pentru a crea interfata utilizatorului; HTTP(S) - protocolul pentru schimbul de informatii utilizat de clientii web si aplicatii. Programele de aplicatii de pe server executa logica aplicatiei in interesul clientiilor web.

       3.1 Protocolul HTTP

       Clientii web trimit cereri la un server ( de exemplu server-ul pentru un magazin online) pentru a primi informatii ( pentru a descarca un catalog de exemplu ) sau pentru a initia prelucrari specifice pe server ( precum plasarea unei comenzi de cumparare ).
       Ca un protocol de la nivelul aplicatiei, HTTP defineste tipurile de cereri pe care un client le poate trimite la un server si tipurile de raspuns pe care un server le trimite unui client.
       HTTP/1.0 specifica trei tipuri de metode de cerere: GET, POST si HEAD. HTTP/1.1 are cinci metode de cerere aditionale: OPTIONS, PUT, TRACE, DELETE si CONNECT.

       3.2 Metoda GET

       GET este cea mai simpla si frecvent utilizata metoda de interogare. Este folosita in mod uzual pentru a accesa resurse statice precum documente HTML sau imagini. GET poate fi folosita si pentru a accesa informatie in mod dinamic prin includerea parametrilor de interogare in cererea URL. De exemplu se poate trimite un parametru "nume", cu valoare "Adrian", atasate la un URL ca http://adress?name=Adrian.

       3.3 Metoda POST

       Metoda POST de interogare este utilizata in general pentru accesarea resurselor dinamice. Cererile POST sunt utilizate pentru transmiterea informatiei care depinde in mod dinamic de cerere sau atunci cand o cantitate foarte mare de informatii trebuie trimisa la server.

       3.4 Diferente intre metoda GET si metoda POST

       Cu metoda GET cererea este trimisa ca un sir de interogare atasat la URL. In cazul metodei POST parametrii sunt trimisi in corpul cererii. In cazul metodei GET, deoarece cererea este continuta in URL, permite browser-elor sa salveze locatia pentru vizitari ulterioare. Anumite servere impun anumite restrictii asupra lungimii cererii URL ceea ce duce la utilizarea metodei POST pentru interogari.

       3.5 Aplicatii web

       Aplicatiile web sunt aplicatii pentru partea de server. Esentiale pentru dezvoltarea de aplicatii pe partea de server sunt:
· un model de programare si o API ( aplication programme interface );
· suport pentru executia aplicatiilor pe partea de server - include suport pentru servicii de retea aplicabile si mediu de executie pentru aplicatii.
· Suport pentru implementare - procesul de instalare al aplicatiei pe server include configurarea componentelor aplicatiei precum parametrii initiali si specificarea unei baze de date.

       3.6 Servlet-uri Java

       Servlet-urile Java permit incastrarea logicii aplicatiei in procese HTTP de tip cerere - raspuns si sunt specificate in "Java Servlet API Specification 2.3", documentatie disponibila la adresa URL: http://java.sun.com/products/servlet/.
       Containerul web in care este dezvoltata aplicatia web care contine servlet-uri invoca servlet-urile pe baza cererilor HTTP. Cand un servlet a fost invocat containerul web trimite informatia din cerere primita la servlet pentru ca acesta s-o prelucreze si sa genereze in mod dinamic un raspuns. Containerul web interactioneaza cu serverul web prin acceptarea cererilor pentru servlet-uri si transmiterea raspunsului la serverul web.
       Comparate cu tehnica CGI si extensii server proprietare precum NSAPI si ISAPI cadrul servlet-urilor furnizeaza o mai buna abstractie a modelului cerere - raspuns HTTP prin specificarea unei API de programare pentru incapsularea cererilor si raspunsurilor. In plus sevlet-urile au toate avantajele limbajului de programare Java, incluzand independenta fata de platforma de implementare. Interactiunea unui servlet cu un server web prin intermediul unui container web se desfasuara in modul urmator:
· Serverul web poate recunoaste daca o cerere corespunde unei aplicatii web din containerul web.
· Daca cererea este pentru containerul web aceasta este directionata catre acesta.
· Cand containerul web a primit cererea trebuie sa decida ce aplicatie web trebuie s-o trateze. O cerere HTTP poate fi asociata unui servlet, unei pagini JSP ( Java Server Pages) sau oricarei resurse statice. Resursele statice includ pagini HTML/XML, imagini si applet-uri.
· In baza informatiei de asociere din cererea HTTP containerul web determina daca cererea trebuie prelucrata de un servlet. Daca da se creaza o instanta a acestuia si i se transmite parametrii cererii. Pentru a trimite raspunsul servlet-ul poate utiliza metoda println() a obiectului java.io.PrintWriter.

       3.7 Descriptor de dezvoltare

       Pentru containerele web descriptorul de dezvoltare este un fisier XML, denumit web.xml, localizat in directorul /WEB-INF al aplicatiei web. La adresa http://java.sun.com/dtd/web_app_2_3.dtd. este furnizata specificatia pentru DTD (document type definition).
       Un descriptor de dezvoltare are mai multe scopuri:
· Initializarea parametrilor pentru servlet-uri si aplicatii web. Ca exemplu daca servlet-ul necesita accesul la o baza de date cel mai bun loc pentru a specifica detaliile, precum utilizatorul si parola, este fisierul descriptor web.xml. Aceasta facilitate permite configurarea aplicatiilor fara a fi necesara recompilarea servlet-urilor.
· Definirea servlet-urilor/ paginilor JSP. Fiecare servlet sau pagina precompilata JSP utilizata de aplicatie trebuie sa fie definita in descriptorul web.xml.

       3.8 Structura unei aplicatii web

       O aplicatie web are patru parti:
· un director public;
· un fisier WEB-INF/web.xml;
· un director WEB-INF/classes;
· un director WEB-INF/lib.
       Directorul public este radacina aplicatiei ( echivalent cu directorul htdocs pentru serverul Apache) unde sunt tinute toate fisierele HTML. Containerul web poate furniza oricare dintre fisierele din directorul public clientului web. Directorul "WEB-INF" este o zona privata iar containerul web nu va furniza continutul acestui director catre clientul web. Directorul "classes" contine servlet-uri compilate si alte clase utilitare. Daca o aplicatie are fisiere .jar ( arhive ) acestea pot fi puse in directorul "lib".


 
 
C.V.
 
Hosted by www.Geocities.ws

1