Servlet ve své nejobecnější formě je instance třídy, která
implementuje javax.servlet.Servlet
interface. Většina
servletů je potomkem jednoho ze standardních implementací tohoto
interfacu, jmenovitě javax.servlet.GenericServlet
a
javax.servlet.http.HttpServlet
.
Při inicializaci servletu načte server třídu servletu (a ostatní
odkazované třídy) a vytvoří instanci voláním bezparametrového
konstruktoru. Následně zavolá metodu servletu
init(ServletConfig config)
. Servlet při vykonávání
této metody uloží ServletConfig
objekt, který bude
dostupný metodou getServletConfig()
. Toto vše je
obstaráno GenericServletem. Servlety, které jsou potomky
GenericServletu
(nebo jeho podtřídy
HttpServlet
) by měli volat
super.init(config)
na začátku metody
init
. Vzniklý objekt ServletConfig
obsahuje parametry servletu a odkaz na ServletContext
obsahující runtime environment informace. Metoda init
je v životním cyklu servletu volána pouze jednou.
Poté co je servlet inicializován, je jeho metoda
service(ServletRequest req, ServletResponse res)
volána pro každý požadavek na servlet. Tato metoda je volána souběžně
(např. multiple threads mohou volat tuto metodu ve stejný okamžik) a
tudíž je nutné, aby byla implementována jako thread-safe.
V případě potřeby odstranění servletu z paměti (např. z důvodu
nahrání nové verze nebo vypínaní serveru) je volána metoda
destroy()
.