Un servlet es un classe Java que permitte de crear dynamicamente datos intra un servitor HTTP. Iste datos es le plus generalmente presentate in le formato HTML, sed illos pote anque esser in le formato XML o un altere formato destinate al navigator web. Servlets usa le API Java Servlet (pacchetto javax.servlet).

Servlet
instantia de: application programming interface[*], technical specification[*]
subclasse de: servlet[*]
parte de: Jakarta EE[*]


sito web official: https://projects.eclipse.org/projects/ee4j.servlet

Le nomine "servlet" deriva del applet. Le applets Java es parve programmas scribite in le linguage Java, executante intra le navigator web del cliente.

Un servlet se executa dynamicamente super le servitor web e permitte le extension del functiones de iste ultime, typicamente: accesso a bases de datos, transactiones de commercio electronic (e-commerce), etc. Un servlet pote esser automaticamente cargate durante le initio del servitor web o durante le prime requesta del cliente. Post esser cargate, le servlets resta active in le expectation a altere requestas del cliente.

Le API defini le relationes inter un container de servlets e le servlet. Le container recipe le requesta del cliente e selectiona le servlet que debera tractar lo. Le container provide anque tote un insimul de servicios standard pro simplificar le gestion del requestas e del sessiones.

Cyclo de vita modificar

1. Initialisar le servlet

Quando un servitor carga un servlet, illo executa le methodo init del servlet. Le processo de initialisation debe completar se ante poter manear requestas del clientes, e ante que le servlet sia destruite.

Ben que multe servlets se executa in servitores multifile, le servlets non ha problemas de concurrentia durante su initialisation. Le servitor appella solmente un vice le methodo init al creation le instantia del servlet, e illo non lo appellara ancora si illo non retorna a recargar le servlet. Le servitor non pote recargar un servlet sin primemente haber destruite le servlet per le medio de appellar le methodo destroy.

2. Interager con le clientes

Post le initialisation, le servlet pote dar servicio al requestas del clientes. Iste requestas essera attendite per le mesme instantia del servlet. Dunque il es necessari de acceder a variabiles compartite, a causa que illos poterea dar problemas de synchronisation inter requirimentos simultanee.

3. Destruer le servlet

Le servlets se executa a fin que le servitor lo destrue, per clausura del servitor o per requesta del administrator del systema. Quando un servitor destrue un servlet, illo executa le methodo destroy del proprie servlet. Iste methodo solmente se executa un vice e pote esser appellate quando responsas es ancora in tractamento, dunque il es necessari expectar lo. Le servitor non executara le servlet ante haber cargate e initialisate lo ancora.

Containers de servlets modificar

Il existe plure containers de servlets, inter alteres Apache Tomcat e Jetty. Le servitor JBoss Application Server usa Apache Tomcat e le servitores Oracle WebLogic, IBM WebSphere e Apache Geronimo pote usar Apache Tomcat o Jetty. Sun (nunc Oracle) etiam provide le servitor Glassfish totalmente scribite in Java.

Exemplo de servlet classic modificar

import javax.servlet.*;
import java.io.*;

public class HelloServlet extends GenericServlet
{
	public void service(HttpServletRequest request, HttpServletResponse response)
	{
		try
		{
			PrintWriter out = response.getWriter();
			out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\">");
			out.println("<title>Hallo, tote le mundo!</title>");
			out.println("<p>Hello world!</p>");
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

Rendimento generate post displicamento:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>Hallo, tote le mundo!</title>
<p>Hello world!</p>

Historia modificar

Le specification original de servlets ha essite create per Sun Microsystems. Comenciante con le version 2.3, le specification ha essite disveloppate secundo le Processo del Communitate Java (Java Community Process).

Version Data de publication Platteforma
Servlet 3.1 Maio 2013 JavaEE 7
Servlet 3.0 Decembre 2009 JavaEE 6, JavaSE 6
Servlet 2.5 Septembre 2005 JavaEE 5, JavaSE 5
Servlet 2.4 Novembre 2003 J2EE 1.4, J2SE 1.3
Servlet 2.3 Augusto 2001 J2EE 1.3, J2SE 1.2
Servlet 2.2 Augusto 1999 J2EE 1.2, J2SE 1.2
Servlet 2.1 Novembre 1998 --
Servlet 2.0 -- --
Servlet 1.0 Junio 1997 --

Ligamines externe modificar