Un servlet este o clasă scrisă în limbajul Java al cărei scop este generarea dinamică de date într-un server HTTP. O astfel de clasă poate crea atât conținut HTML, cât și documente XML, imagini, alte fișiere etc. În cea mai mare parte servleții sunt folosiți împreună cu protocolul HTTP, deși există posibilitatea de a utiliza servleți generici care nu sunt legați de un anumit protocol. Așadar prin „servlet” se înțelege de obicei „servlet HTTP”.

Un servlet nu poate fi executat direct de către server, ci de către un container web. Pentru a răspunde unei cereri de la un client (de obicei un browser) către un anumit servlet, serverul trimite mai departe cererea către container, care se ocupă de instanțierea obiectului respectiv și de apelarea metodelor necesare. Exemple de containere web care suportă servleți includ Apache Tomcat (acesta poate rula și ca server de sine stătător, dar performanțele sale nu se compară cu cele ale unui server web dedicat precum Apache[1]), Jetty, GlasFish și Resin.

Servleții reprezintă o alternativă la tehnologiile non Java CGI sau ASP.NET.

Sun Microsystems a publicat prima specificație completă, versiunea 1.0, în iunie 1997. Începând cu versiunea 2.3 specificațiile au fost dezvoltate cu ajutorul Java Community Process, un mecanism care permite tuturor celor interesați să ia parte la crearea specificațiilor tehnice în platformele Java. La data de 28 ianuarie 2012 ultima specificație privind servleții are versiunea 3.0.

Ierarhia API

modificare

Orice servlet HTTP trebuie să extindă javax.servlet.http.HttpServlet, care extinde la rândul ei javax.servlet.GenericServlet ce implementează interfața javax.servlet.Servlet[2]. Atât HttpServlet cât și GenericServlet sunt clase abstracte (nu pot fi instanțiate, adică nu se poate construi un obiect din aceste clase).

Referințe