Servlet

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

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 

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

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 
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 
  Java Servlet Technology Sito official
  JSR-000053 Java Servlet 2.3 and JavaServer Pages 1.2 Specifications
  JSR-000154 Java Servlet 2.4 Specification
  JSR-000315 Java Servlet 3.0 Specification
  Tutoriel: Les Servlets per Julien Gilli
  Les bases du développement web MVC en Java
  Apache Tomcat
Categoria:Platteforma de interprisa Java