vineri, 18 mai 2007

Ce sunt Servlet-urile?

Un servlet Java este un program ce rulează pe server (spre deosebire de applet-uri ce rulează în browser); el preia cereri HTTP de la browser-ul Web şi generează dinamic un răspuns HTML (sau XML). Întreaga pagină Web trebuie astfel să fie conţinută în servlet-ul Java. Dacă un Web designer sau un Web master doreşte să schimbe look-ul paginii respective, ar trebui să editeze şi să recompileze servlet-ul chiar dacă modul de funcţionare ce stă în spatele acestuia rămâne acelaşi.
http://www.inf.ucv.ro/~revista/images/servletjdbc.pdf

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/.

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.

Niciun comentariu: