SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
Java Servlet 1
Java Servlet
Java Servlet
Desarrollador
Oracle Corporation / Sun Microsystems
http://java.sun.com/...
[1]
Información general
Última versión estable
3.0 (info
[2]
)
10 de diciembre de 2009
Género ?
Programado en Java
Sistema operativo Máquina virtual Java
Licencia Propietaria (gratuíto para uso no comercial)
El servlet es una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor.
Aunque los servlets pueden responder a cualquier tipo de solicitudes, éstos son utilizados comúnmente para extender
las aplicaciones alojadas por servidores web, de tal manera que pueden ser vistos como applets de Java que se
ejecutan en servidores en vez de navegadores web. Este tipo de servlets son la contraparte Java de otras tecnologías
de contenido dinámico Web, como PHP y ASP.NET.
La palabra servlet deriva de otra anterior, applet, que se refiere a pequeños programas que se ejecutan en el contexto
de un navegador web.
El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición
que envíe el navegador web.
Historia
La especificación original de Servlets fue creada por Sun Microsystems (la versión 1.0 fue terminada en junio de
1997). Comenzando con la versión 2.3, la especificación de Servlet fue desarrollada siguiendo el Proceso de la
Comunidad Java (Java Community Process).
Ciclo de vida
1. Inicializar el servlet
Cuando un servidor carga un servlet, ejecuta el método init del servlet. El proceso de inicialización debe
completarse antes de poder manejar peticiones de los clientes, y antes de que el servlet sea destruido.
Aunque muchos servlets se ejecutan en servidores multi-thread, los servlets no tienen problemas de concurrencia
durante su inicialización. El servidor llama sólo una vez al método init al crear la instancia del servlet, y no lo
llamará de nuevo a menos que vuelva a recargar el servlet. El servidor no puede recargar un servlet sin primero haber
destruido el servlet llamando al método destroy.
2. Interactuar con los clientes
Después de la inicialización, el servlet puede dar servicio a las peticiones de los clientes. Estas peticiones serán
atendidas por la misma instancia del servlet, por lo que hay que tener cuidado al acceder a variables compartidas, ya
que podrían darse problemas de sincronización entre requerimientos simultáneos.
3. Destruir el servlet
Java Servlet 2
Los servlets se ejecutan hasta que el servidor los destruye, por cierre del servidor o bien a petición del administrador
del sistema. Cuando un servidor destruye un servlet, ejecuta el método destroy del propio servlet. Este método
sólo se ejecuta una vez y puede ser llamado cuando aún queden respuestas en proceso, por lo que hay que tener la
atención de esperarlas. El servidor no ejecutará de nuevo el servlet hasta haberlo cargado e inicializado de nuevo.
Clases y objetos necesarios
Podemos crear un Servlet haciendo uso del paquete javax.servlet.
Interface HttpServletRequest
Sigue este enlace para ver su definición detallada (en inglés): http://java.sun.com/j2ee/sdk_1.3/techdocs/api/
javax/servlet/http/HttpServletRequest.html
Interface HttpServletResponse
Sigue este enlace para ver su especificación detallada (en inglés): http://java.sun.com/j2ee/sdk_1.3/techdocs/
api/javax/servlet/http/HttpServletResponse.html
Beneficios de utilizar Servlets en lugar de CGI
• Son más eficientes y utilizan menos recursos. CGI utiliza un nuevo proceso por cada petición. En cambio en los
Servlets sólo existe una copia cargada en la máquina virtual y por cada petición se inicia un hilo, lo cual reduce el
uso de memoria del servidor y el tiempo de respuesta.
•• Tienen persistencia, por lo que siguen "vivos" una vez terminada la petición.
Ejemplo
Código de ejemplo de un Servlet que procesa una petición GET y devuelve una página web HTML sencilla: /**/
package org.pruebas;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HolaMundoServlet extends HttpServlet {
/**
* Servlet de ejemplo que procesa una petición GET
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
@Override
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
Java Servlet 3
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">");
out.println("<html>");
out.println("<head><title>Ejemplo Hola Mundo</title></head>");
out.println("<body>");
out.println("<h1>¡Hola Mundo!</h1>");
out.println("</body></html>");
}
}
Enlaces externos
• Referencia oficial para Java Servlet de Sun Microsystem
[1]
• Especificación JSR 154 de Java Servlet
[3]
• Ejemplos y explicaciones de Servlets y JSPs
[4]
Referencias
[1] http://java.sun.com/products/servlet/reference/index.html
[2] http://jcp.org/en/jsr/detail?id=315
[3] http://jcp.org/en/jsr/detail?id=154
[4] http://www.lab.inf.uc3m.es/~a0080802/RAI/servlet.html
Fuentes y contribuyentes del artículo 4
Fuentes y contribuyentes del artículo
Java Servlet  Fuente: http://es.wikipedia.org/w/index.php?oldid=75511413  Contribuyentes: BetDrago, C'est moi, Chfiguer, Cinevoro, Ctrl Z, Deccico, Dem, Diamondland, DiegoBM, Digigalos,
Dodo, Gacpro, Guevonaso, HavokCR, Jampy1771, JorgeGG, Jugones55, LlamaAl, Locovich, Maleiva, Matdrodes, Neurosystem, PabloCastellano, Paintman, Pvalentini, Pólux, Rbuj,
SergioVares, Snakeeater, Spa karmona, SuperBraulio13, Superzerocool, Taichi, Template namespace initialisation script, UA31, Vanbasten 23, Wikier, Wikipablo, 110 ediciones anónimas
Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

Más contenido relacionado

La actualidad más candente (15)

Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
Curso Java Avanzado 3 Js Ps
Curso Java Avanzado   3 Js PsCurso Java Avanzado   3 Js Ps
Curso Java Avanzado 3 Js Ps
 
Java servlets
Java servletsJava servlets
Java servlets
 
Tomcat
TomcatTomcat
Tomcat
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Servlet
ServletServlet
Servlet
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
Introducción a Zend Framework 2
Introducción a  Zend Framework 2Introducción a  Zend Framework 2
Introducción a Zend Framework 2
 
Cronograma Curso Kumbia
Cronograma Curso KumbiaCronograma Curso Kumbia
Cronograma Curso Kumbia
 
Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
Nodejs
NodejsNodejs
Nodejs
 
Tomcat yant
Tomcat yantTomcat yant
Tomcat yant
 
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffoldDesarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 

Similar a Java servlet (20)

Java servlet
Java servletJava servlet
Java servlet
 
Java servlet
Java servletJava servlet
Java servlet
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
20001215 Programación de Servlets y WML
20001215   Programación de Servlets y WML20001215   Programación de Servlets y WML
20001215 Programación de Servlets y WML
 
servlets
servlets servlets
servlets
 
[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java[ES] Introducción a las Aplicaciones Web con Java
[ES] Introducción a las Aplicaciones Web con Java
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Servlets
ServletsServlets
Servlets
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
 
SERVLET BASICS
SERVLET BASICSSERVLET BASICS
SERVLET BASICS
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Java web 01 - servlets
Java web 01 - servletsJava web 01 - servlets
Java web 01 - servlets
 
Charla
CharlaCharla
Charla
 
INFOGRAFIA.pptx
INFOGRAFIA.pptxINFOGRAFIA.pptx
INFOGRAFIA.pptx
 
Servidores
ServidoresServidores
Servidores
 
Servidores web o http
Servidores web o httpServidores web o http
Servidores web o http
 

Más de Josue Lopez

Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01
Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01
Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01Josue Lopez
 
Teoria de redes 5°
Teoria de redes 5°Teoria de redes 5°
Teoria de redes 5°Josue Lopez
 
Taller de procesamiento de datos 5°
Taller de procesamiento de datos 5°Taller de procesamiento de datos 5°
Taller de procesamiento de datos 5°Josue Lopez
 
Sistemas operativos 5°
Sistemas operativos 5°Sistemas operativos 5°
Sistemas operativos 5°Josue Lopez
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capasJosue Lopez
 
Plataforma web de servicios multiples 5°
Plataforma web de servicios multiples 5°Plataforma web de servicios multiples 5°
Plataforma web de servicios multiples 5°Josue Lopez
 
Macroeconomia 5°
Macroeconomia 5°Macroeconomia 5°
Macroeconomia 5°Josue Lopez
 
Dibujo asistido 3°
Dibujo asistido 3°Dibujo asistido 3°
Dibujo asistido 3°Josue Lopez
 
Diseño logico 5°
Diseño logico 5°Diseño logico 5°
Diseño logico 5°Josue Lopez
 

Más de Josue Lopez (11)

Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01
Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01
Ejecuciondeinstruccionescomputaciontrabajo 110115214722-phpapp01
 
Teoria de redes 5°
Teoria de redes 5°Teoria de redes 5°
Teoria de redes 5°
 
Taller de procesamiento de datos 5°
Taller de procesamiento de datos 5°Taller de procesamiento de datos 5°
Taller de procesamiento de datos 5°
 
Sistemas operativos 5°
Sistemas operativos 5°Sistemas operativos 5°
Sistemas operativos 5°
 
Programacion por capas
Programacion por capasProgramacion por capas
Programacion por capas
 
Plataforma web de servicios multiples 5°
Plataforma web de servicios multiples 5°Plataforma web de servicios multiples 5°
Plataforma web de servicios multiples 5°
 
Macroeconomia 5°
Macroeconomia 5°Macroeconomia 5°
Macroeconomia 5°
 
Join
JoinJoin
Join
 
Ingles 5°
Ingles 5°Ingles 5°
Ingles 5°
 
Dibujo asistido 3°
Dibujo asistido 3°Dibujo asistido 3°
Dibujo asistido 3°
 
Diseño logico 5°
Diseño logico 5°Diseño logico 5°
Diseño logico 5°
 

Último

PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOPDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOManuelBustamante49
 
clase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdf
clase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdfclase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdf
clase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdfFABIOANDRESPALLARESP
 
guia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfguia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfcucciolosfabrica
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturajesusgrosales12
 
Arquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der RoheArquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der Roheimariagsg
 
Brochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfBrochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfhellotunahaus
 
Arquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth BermúdezArquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth BermúdezNaza59
 
Normas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratisNormas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratisbrasilyamile
 
Arquitectura Moderna Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna  Walter Gropius- Frank Lloyd WrightArquitectura Moderna  Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna Walter Gropius- Frank Lloyd Wrightimariagsg
 
Arquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMArquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMNaza59
 
Proceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoProceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoJorge Fernandez
 
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdfLAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdfBrbara57940
 
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfasnsdt
 
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoTIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoWilsonChambi4
 
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdfcnaomi195
 
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura ModernaLe Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Modernasofpaolpz
 
diseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddiseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddabuitragoi
 
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...MayerlyAscanioNavarr
 
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfSlaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfslaimenbarakat
 

Último (20)

PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYOPDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
PDU - PLAN DE DESARROLLO URBANO DE LA CIUDAD DE CHICLAYO
 
clase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdf
clase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdfclase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdf
clase_11_introduccion_a_los_mecanismos_y_a_la_cinematica.pdf
 
guia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdfguia de talles de camitas cucciolos 2024.pdf
guia de talles de camitas cucciolos 2024.pdf
 
Arte textil: Tejidos artesanos en la frontera hispano-lusa
Arte textil: Tejidos artesanos en la frontera hispano-lusaArte textil: Tejidos artesanos en la frontera hispano-lusa
Arte textil: Tejidos artesanos en la frontera hispano-lusa
 
Jesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitecturaJesus Diaz afiche Manierismo .pdf arquitectura
Jesus Diaz afiche Manierismo .pdf arquitectura
 
Arquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der RoheArquitectura Moderna Le Corbusier- Mies Van Der Rohe
Arquitectura Moderna Le Corbusier- Mies Van Der Rohe
 
Brochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdfBrochure Tuna Haus _ Hecho para mascotas.pdf
Brochure Tuna Haus _ Hecho para mascotas.pdf
 
Arquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth BermúdezArquitectura moderna / Nazareth Bermúdez
Arquitectura moderna / Nazareth Bermúdez
 
Normas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratisNormas de convivencia para imprimir gratis
Normas de convivencia para imprimir gratis
 
Arquitectura Moderna Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna  Walter Gropius- Frank Lloyd WrightArquitectura Moderna  Walter Gropius- Frank Lloyd Wright
Arquitectura Moderna Walter Gropius- Frank Lloyd Wright
 
Arquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSMArquitectura moderna nazareth bermudez PSM
Arquitectura moderna nazareth bermudez PSM
 
Proceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimientoProceso de percepción visual y de reconocimiento
Proceso de percepción visual y de reconocimiento
 
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdfLAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
LAMODERNIDADARQUITECTURABYBARBARAPADILLA.pdf
 
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdfCERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
CERTIFICACIÓN DE CAPACITACIÓN PARA EL CENSO - tfdxwBRz6f3AP7QU.pdf
 
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánicoTIPOS DE LINEAS utilizados en dibujo técnico mecánico
TIPOS DE LINEAS utilizados en dibujo técnico mecánico
 
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
2024-EL CAMBIO CLIMATICO Y SUS EFECTOS EN EL PERÚ Y EL MUNDO.pdf
 
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura ModernaLe Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
Le Corbusier y Mies van der Rohe: Aportes a la Arquitectura Moderna
 
diseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidaddiseño de plantas agroindustriales unidad
diseño de plantas agroindustriales unidad
 
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
Guía de actividades y rúbrica de evaluación - Unidad 3 - Escenario 4 - Rol de...
 
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdfSlaimen Barakat - SLIDESHARE TAREA 2.pdf
Slaimen Barakat - SLIDESHARE TAREA 2.pdf
 

Java servlet

  • 1. Java Servlet 1 Java Servlet Java Servlet Desarrollador Oracle Corporation / Sun Microsystems http://java.sun.com/... [1] Información general Última versión estable 3.0 (info [2] ) 10 de diciembre de 2009 Género ? Programado en Java Sistema operativo Máquina virtual Java Licencia Propietaria (gratuíto para uso no comercial) El servlet es una clase en el lenguaje de programación Java, utilizada para ampliar las capacidades de un servidor. Aunque los servlets pueden responder a cualquier tipo de solicitudes, éstos son utilizados comúnmente para extender las aplicaciones alojadas por servidores web, de tal manera que pueden ser vistos como applets de Java que se ejecutan en servidores en vez de navegadores web. Este tipo de servlets son la contraparte Java de otras tecnologías de contenido dinámico Web, como PHP y ASP.NET. La palabra servlet deriva de otra anterior, applet, que se refiere a pequeños programas que se ejecutan en el contexto de un navegador web. El uso más común de los servlets es generar páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web. Historia La especificación original de Servlets fue creada por Sun Microsystems (la versión 1.0 fue terminada en junio de 1997). Comenzando con la versión 2.3, la especificación de Servlet fue desarrollada siguiendo el Proceso de la Comunidad Java (Java Community Process). Ciclo de vida 1. Inicializar el servlet Cuando un servidor carga un servlet, ejecuta el método init del servlet. El proceso de inicialización debe completarse antes de poder manejar peticiones de los clientes, y antes de que el servlet sea destruido. Aunque muchos servlets se ejecutan en servidores multi-thread, los servlets no tienen problemas de concurrencia durante su inicialización. El servidor llama sólo una vez al método init al crear la instancia del servlet, y no lo llamará de nuevo a menos que vuelva a recargar el servlet. El servidor no puede recargar un servlet sin primero haber destruido el servlet llamando al método destroy. 2. Interactuar con los clientes Después de la inicialización, el servlet puede dar servicio a las peticiones de los clientes. Estas peticiones serán atendidas por la misma instancia del servlet, por lo que hay que tener cuidado al acceder a variables compartidas, ya que podrían darse problemas de sincronización entre requerimientos simultáneos. 3. Destruir el servlet
  • 2. Java Servlet 2 Los servlets se ejecutan hasta que el servidor los destruye, por cierre del servidor o bien a petición del administrador del sistema. Cuando un servidor destruye un servlet, ejecuta el método destroy del propio servlet. Este método sólo se ejecuta una vez y puede ser llamado cuando aún queden respuestas en proceso, por lo que hay que tener la atención de esperarlas. El servidor no ejecutará de nuevo el servlet hasta haberlo cargado e inicializado de nuevo. Clases y objetos necesarios Podemos crear un Servlet haciendo uso del paquete javax.servlet. Interface HttpServletRequest Sigue este enlace para ver su definición detallada (en inglés): http://java.sun.com/j2ee/sdk_1.3/techdocs/api/ javax/servlet/http/HttpServletRequest.html Interface HttpServletResponse Sigue este enlace para ver su especificación detallada (en inglés): http://java.sun.com/j2ee/sdk_1.3/techdocs/ api/javax/servlet/http/HttpServletResponse.html Beneficios de utilizar Servlets en lugar de CGI • Son más eficientes y utilizan menos recursos. CGI utiliza un nuevo proceso por cada petición. En cambio en los Servlets sólo existe una copia cargada en la máquina virtual y por cada petición se inicia un hilo, lo cual reduce el uso de memoria del servidor y el tiempo de respuesta. •• Tienen persistencia, por lo que siguen "vivos" una vez terminada la petición. Ejemplo Código de ejemplo de un Servlet que procesa una petición GET y devuelve una página web HTML sencilla: /**/ package org.pruebas; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HolaMundoServlet extends HttpServlet { /** * Servlet de ejemplo que procesa una petición GET * @param request * @param response * @throws ServletException * @throws IOException */ @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  • 3. Java Servlet 3 response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">"); out.println("<html>"); out.println("<head><title>Ejemplo Hola Mundo</title></head>"); out.println("<body>"); out.println("<h1>¡Hola Mundo!</h1>"); out.println("</body></html>"); } } Enlaces externos • Referencia oficial para Java Servlet de Sun Microsystem [1] • Especificación JSR 154 de Java Servlet [3] • Ejemplos y explicaciones de Servlets y JSPs [4] Referencias [1] http://java.sun.com/products/servlet/reference/index.html [2] http://jcp.org/en/jsr/detail?id=315 [3] http://jcp.org/en/jsr/detail?id=154 [4] http://www.lab.inf.uc3m.es/~a0080802/RAI/servlet.html
  • 4. Fuentes y contribuyentes del artículo 4 Fuentes y contribuyentes del artículo Java Servlet  Fuente: http://es.wikipedia.org/w/index.php?oldid=75511413  Contribuyentes: BetDrago, C'est moi, Chfiguer, Cinevoro, Ctrl Z, Deccico, Dem, Diamondland, DiegoBM, Digigalos, Dodo, Gacpro, Guevonaso, HavokCR, Jampy1771, JorgeGG, Jugones55, LlamaAl, Locovich, Maleiva, Matdrodes, Neurosystem, PabloCastellano, Paintman, Pvalentini, Pólux, Rbuj, SergioVares, Snakeeater, Spa karmona, SuperBraulio13, Superzerocool, Taichi, Template namespace initialisation script, UA31, Vanbasten 23, Wikier, Wikipablo, 110 ediciones anónimas Licencia Creative Commons Attribution-Share Alike 3.0 //creativecommons.org/licenses/by-sa/3.0/