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 |
Unservlet es unclasseJava que permitte de crear dynamicamentedatos intra unservitor HTTP. Istedatos es le plus generalmente presentate in le formatoHTML, sed illos pote anque esser in le formatoXML o un altere formato destinate alnavigator web. Servlets usa leAPIJava Servlet (pacchettojavax.servlet
).
Le nomine "servlet" deriva delapplet. Leapplets Java es parve programmas scribite in le linguageJava, executante intra lenavigator web del cliente.
Un servlet se executa dynamicamente super leservitor web e permitte le extension del functiones de iste ultime, typicamente: accesso abases de datos, transactiones decommercio electronic (e-commerce), etc. Un servlet pote esser automaticamente cargate durante le initio delservitor 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 uncontainer 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.
Quando unservitor carga un servlet, illo executa lemethodoinit
del servlet. Leprocesso de initialisation debe completar se ante poter manear requestas del clientes, e ante que le servlet sia destruite.
Ben que multe servlets se executa inservitoresmultifile, le servlets non ha problemas de concurrentia durante su initialisation. Leservitor appella solmente un vice lemethodoinit
al creation le instantia del servlet, e illo non lo appellara ancora si illo non retorna a recargar le servlet. Leservitor non pote recargar un servlet sin primemente haber destruite le servlet per le medio de appellar lemethododestroy
.
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.
Le servlets se executa a fin que leservitor lo destrue, per clausura delservitor o per requesta deladministrator del systema. Quando unservitor destrue un servlet, illo executa lemethododestroy
del proprie servlet. Istemethodo solmente se executa un vice e pote esser appellate quando responsas es ancora in tractamento, dunque il es necessari expectar lo. Leservitor non executara le servlet ante haber cargate e initialisate lo ancora.
Il existe plure containers de servlets, inter alteresApacheTomcat eJetty. LeservitorJBoss Application Server usaApacheTomcat e leservitoresOracleWebLogic,IBMWebSphere eApacheGeronimo pote usarApacheTomcat oJetty.Sun (nuncOracle) etiam provide leservitorGlassfish totalmente scribite inJava.
importjavax.servlet.*;importjava.io.*;publicclassHelloServletextendsGenericServlet{publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse){try{PrintWriterout=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(IOExceptione){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>
Le specification original de servlets ha essite create perSun 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 | -- |