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
).
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
modificarIl 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
modificarimport 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
modificarLe 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- (anglese) Java Servlet Technology Sito official
- (anglese) JSR-000053 Java Servlet 2.3 and JavaServer Pages 1.2 Specifications
- (anglese) JSR-000154 Java Servlet 2.4 Specification
- (anglese) JSR-000315 Java Servlet 3.0 Specification
- (francese) Tutoriel: Les Servlets per Julien Gilli
- (francese) Les bases du développement web MVC en Java
- (anglese) Apache Tomcat