Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Apelarea servleturilor
In acesta sectie, vom discuta despre metodele variate de a apela un servlet. In particular, ne vom concentra pe servleturile care se executa pe servere Web, fiind accesate print HTTP. Alte servicii de retea care gazduiesc servleturi, asa cum sunt serverele FTP care suporta servleturi, vor suporta mecanisme diferite pentru accesarea servleturilor. Tehnicile urmatoare ar trebui, totusi, aplicate pentru majoritatea servleturilor bazate pe Web.
1. Accesarea directa prin intermediul unei cereri HTTP
Cel mai comun mod de a
apela un servlet este printr-o cerere URL in aceasi
maniera cum sunt accesate programele CGI. Odata ce un
servlet a fost compilat si instalat in directorul corespunzator pe serverul de
Web, el poate fi apelat printr-un URL de forma https://hostname:port/servlet/ServletName.
"ServletName" este fie numele clasei servlet, sau un alias al servletului. Cand serverul Web primeste cererea, verifica sa vada daca are deja o instanta a servletului cerut. Daca are, atunci cererea este transferata servletului; altfel clasa servletul cerut este incarcata dinamic si o noua instanta este creata pentru a prelua cererea.
Atunci cand servletul este chemat pentru a servi o cerere, este suplimentat cu parametrii dati de browser. Rezultatul servletului este intors catre browser, la fel cum intoarce un script CGI (figura 3).
Intr-o executie normala a unui servlet, doar o singura instanta a servletului va fi folosita pentru a servi toate cererile catre server pe parcursul intregii vieti a servletului. Acest lucru poate fi comparat cu un script CGI care trebuie executat pentru fiecare noua cerere.
Server-side includes
Server-side includes (SSI) este in folosinta de la cele mai vechi servere Web. Ele au posibilitatea de a asambla dinamic un document HTML atunci cand se cere asta: Documentul HTML include tag-uri speciale pe care serverul Web le inlocuieste cu continut dinamic ca si cum ar intoarce pagina clientului.
Prin folosirea noului tag SERVLET, Server-side includes poate fi folosita pentru a invoca un servlet si sa insereze iesirea intr-un document. (figura 4)
Tag-ul servlet are urmatoarea forma:
<html>
<servlet
name="ServletName"
code="ServletClass"
codebase="ssi/"
initParam1="val1"
>
param name = "requestParam1" value="val3">
</servlet>
</html>
Documentele, sunt identificate deobicei ca documente server-parsed (documente care pot avea tag-uri SSI) prin folosirea extensiei .shtml. Cand un server Web returneaza un server-parsed document, el scaneaza documentul pentru tag-uri speciale. Cand un tag SERVLET este introdus, atunci servlet-ul cerut este invocat si iesirea sa va fi inserata in document. Aceasta iesire inlocuieste tag-ul original din document, astfel incat clientul sa primeasca documentul complet fara sa stie ca acesta a fost generat dinamic.
Tag-ul din exemplu dinainte indica ca servletul "ServletClass" trebuie sa se execute atunci cand pagina este ceruta. Fisierul clasei se afla in directorul ssi, si unele initializari si parametrii ceruti au fost inclusi. Atat parametrul NAME cat si parametrul CODEBASE sunt optionali. Daca parametrul CODEBASE este omis, clasa servletului trebuie sa fie in directorul standard pentru servleturi. Parametrul NAME este folosit pentru a permite reutilizarea servletului SSI.
3. Inlantuirea si filtrarea servleturilor
Uneori, servleturile pot fi cateodata inlantuite pentru a face o cerere unui proces secvential. Intr-o inlantuire servlet, iesirea de la fiecare servlet este directionata catre urmatorul servlet in inlantuire, pana cand se ajunge la ultimul servlet, si astfel iesirea este returnata clientului (figura 5). Inlantuirea servleturilor poate fi configurata pentru un server in mai multe moduri - fie explicit ori prin specificarea tipurilor MIME.
Inlantuirea servleturilor poate fi uneori afisata si mapata catre un URL particular prin folosirea de aliasuri la servleturi. De fiecare data cand o cerere catre un alias al unui servlet particular este primita, o inlantuire preconfigurata de servleturi este invocata. Ordinea in care servleturile este predeterminata si nu este afectata de tipul continutului returnat de raspunsul fiecarui servlet.
A doua metoda de inlantuire a servleturilor se refera la filtrarea
lor. Inlantuirea
servleturilor poate fi configurata bazandu-se pe tipuri MIME de date pentru a
filtra date de un anumit tip prin alte servleturi. In
acest caz, daca continutul tipului returnat de la o cerere se potriveste cu un filtru preconfigurat, atunci iesirea sa este
directionata catre alt
servlet. De exemplu, un filtru poate fi configurat sa
converteasca toate raspunsurile de tipul image/x-xbitmap in image/gif.
Copyright © 2024 - Toate drepturile rezervate