Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Java


Index » educatie » » informatica » Java
» Interiorul Servleturilor


Interiorul Servleturilor


Interiorul Servleturilor .

1. API-ul Servleturilor

Toate servleturile trebuie numaidecat sa implementeze interfata Servlet. Aceasta interfata descrie mecanismul exact prin care serverul retea va interactiona cu servleturile, incluzand initializarile, finalizarea si raspunsul procesului.


Detalii despre raspunsul fiecarui client sunt date de servlet prin intermediul interfetei "ServletRequest" (figura 6). Aceasta interfata descrie proprietatile generale ale cererii care a fost facuta catre servlet. Servletul rezolva cererea si apoi raspunde clientului prin intermediul interfetei ServletResponse. Aceasta interfata are un mecanism pentru ca servletul sa seteze tipurile de date pentru raspuns si sa scrie in fisierul de iesire acest raspuns.



Mai des, totusi, un servlet poate fi o subclasa a unei implementari concrete a unei interfete "Servlet" care are suport specific pentru anumite servere. Cel mai obisnuit exemplu este clasa "HttpServlet" care implementeaza Servlet si are metode specializate pentru a prelucra cererile HTTP. In acest caz, cererea clientului este prezentata servletului ca un obiect "HttpServletRequest", si clientul primeste raspunsul prin intermediul unui obiect "HttpServletResponse".

2. Ciclul de viata al servletului


Servletul API specificat defineste ciclul de viata al servletului. Ciclul de viata incepe cand un servlet este instantiat, dupa care cererea este prelucrata, si se termina atunci cand servletul este distrus.

In general, un servlet este creat o singura data, prima data cand clientul o cere. Inainte ca aceasta prima cerere sa fie preluata, servletul este automat initializat de serviciul de retea cu diferiti parametrii predefiniti. Cand serviciul de retea decide sa dezinstaleze servletul, este apelat un destructor, astfel incat servletul sa elibereze resursele pe care le-a ocupat (figura 7).

3 Variatii in ciclul de viata.

In ciclul de viata al unui servlet exista importante variatii, depinzand de modul de invocare a servletului.

Daca un servlet este folosit intr-un SSI (server-side include), el este instantiat si initializat din nou de fiecare data cand documentul este accesat, in cazul in care servletul nu este numit explicit in tag-ul servlet. Daca un servlet este numit, el va fi incarcat o singura data impreuna cu parametrii de initializare; aceasta unica instanta va fi folosita pentru a servi viitoarele cereri. Daca un servlet SSI are nevoie de initializari in plus, el va trebui numit explicit pentru mai multa eficienta.

Prin intermediul instrumentului de administrare a serverului Java Web Server, servleturile pot fi configurate sa se incarce in momentul de pornire a serverului. Acest lucru are avantajul de a permite servleturilor care au operatii in plus la pornire sa fie initializate inainte de primul lor acces. Acest lucru elimina posibilitatea ca raspunsul initial sa aiba un timp prea mare pentru client dar servletul va fi incarcat pentru o durata mai mare decat normala, in cazul in care servletul nu va fi oprit manual.

Parametrii Servletului.

Sunt doua mecanisme importante pentru a transmite informatiile de configurare intr-un servlet.

Parametrii de initializare sunt transmisi servletului atunci cand acesta este incarcat prima data; ei sunt specificati intr-o structura configuratie suplimentara servletului in timpul initializarilor. Acesti parametrii sunt folositi pentru configurarea de informatii generale, care se aplica tuturor cererilor. Ei sunt de obicei configurati static de instrumentul de admistrare grafic, altfel pentru servleturile SSI pot de asemenea sa fie declarate intr-un tag servlet in-line.

Depizand de metoda folosita pentru a invoca servletul, parametrii ceruti pot fi de asemenea specificati intr-o cerere servlet. Daca parametrii sunt dati in timpul executiei, spre diferenta de parametrii dati in momentul initializarii, ei pot fi folositi pentru da informatii particulare unei anumite cereri. Pentru servleturile HTTP, acesti parametrii sunt specificati in sirul cererii clientului. Pentru servleturi SSI, parametrii sunt luati din tag-ul "param" din tag-ul servlet.

5. Acces prin fire de executie si sincronizare.

De cand serverele creeaza doar o singura data o instanta a unui servlet pentru a prelua cereri distincte si uneori concurente, programatorul trebuie sa se concentreze asupra sigurantei firelelor de executie pentru ca tehnicile de sincronizare standard sa fie folosite ca sa asigure ca servletul preia cererile in siguranta. Toate potentialele accesari concurente a unui servlet vor face apelari concurente catre metoda "service()". Blocurile de cod din aceasta metoda care are trebui sa nu fie executata concurent ar trebui sincronizate cu lacatele respective.


O interfata aditionala a fost adaugata in JSDK 2.0 care permite scriitorilor de servleturi sa ignore problemele de acces concurent. Implementarea interfatei "SingleThreadModel", garanteaza ca doua fire de executie nu vor executa concurential metoda "service()". In astfel de servleturi, instantele multiple pot fi create pentru a asigura ca va exista intotdeauna o instanta care poate prelua o cerere fara blocaje (figura 8).

6. Servlet beans

Servlet beans sunt servleturi adaugate la specificatiile JavaBeans. Un servlet bean are mai multe avantaje fata de servleturile standard. In primul rand, un servlet bean poate fi distribuit intr-un fisier JAR care contine toate clasele si resursele servletului. Fisierul servlet JAR este instalat deobicei in subdirectorul servletbeans al serverului. Un al doilea avantaj este ca serverul gazda poate folosi introspectia pentru a accesa proprietatile servletului in stilul JavaBean. Acest lucru permite ca servletul sa primeasca informatii noi fara sa fie reincarcat. Serverele, cum ar fi Java Web Server, permit administrarea grafica a proprietatilor servlet bean prin intermediul acestui mecanism. Alt avantaj al servleturilor bean este ca serverul gazda poate sa le serializeze automat. Odata ce o proprietate a fost modificata, noul bean poate fi automat serializat astfel incat schimbarea sa fie efectuata. Urmatoarea data cand server-ul va incarca servletul, el poate fi incarcat din fisierul .ser in loc sa-l incarce din fisierul original JAR.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate