Java Servlet

Java Servlet
Java Servlet
Desarrollador
Oracle Corporation / Sun Microsystems
http://java.sun.com/...
Información general
Última versión estable 3.0 (info)
Género ?
Programado en Java
Sistema operativo Máquina virtual Java
Licencia ?
En español ?

Los servlets, son objetos que corren dentro del contexto de un contenedor de servlets (ej: Tomcat) y extienden su funcionalidad.

La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un programa que se ejecuta en un servidor.

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.

Contenido

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

Aspectos técnicos

Un servlet es un objeto que se ejecuta en un servidor o contenedor JEE, especialmente diseñado para ofrecer contenido dinámico desde un servidor web, generalmente HTML. Otras opciones que permiten generar contenido dinámico son los lenguajes ASP, PHP, JSP (un caso especial de servlet), Ruby y Python. Forman parte de JEE (Java Enterprise Edition), que es una ampliación de JSE (Java Standard Edition).

Un servlet implementa la interfaz javax.servlet.Servlet o hereda alguna de las clases más convenientes para un protocolo específico (ej: javax.servlet.HttpServlet). Al implementar esta interfaz el servlet es capaz de interpretar los objetos de tipo HttpServletRequest y HttpServletResponse quienes contienen la información de la página que invocó al servlet.

Entre el servidor de aplicaciones (o web content) y el servlet existe un contrato que determina cómo han de interactuar. La especificación de éste se encuentra en los JSR (Java Specification Requests) del JCP (Java Community Process).

Descriptor de despliegue

El descriptor de despliegue es un archivo que se localiza en el directorio WEB-INF y se llama web.xml. En él es donde se controla el comportamiento de los Servlet y páginas JSP.

Ejemplo sencillo de un Descriptor de despliegue

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
      <servlet-name>HolaMundoServlet</servlet-name>
      <servlet-class>org.prueba.servlet.HolaMundoServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>HolaMundoServlet</servlet-name>
      <url-pattern>/HolaMundoServlet</url-pattern>
    </servlet-mapping>
    <session-config>
      <session-timeout>30</session-timeout>
    </session-config>
</web-app>

Ciclo de vida

El ciclo de vida de un Servlet se divide en los siguientes puntos:

  1. El cliente solicita una petición a un servidor vía URL.
  2. El servidor recibe la petición.
    1. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al método init().
    2. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un Servlet puede manejar múltiples peticiones de clientes.
  3. Se llama al método service() para procesar la petición devolviendo el resultado al cliente.
  4. Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos.

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


Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Java Servlet — Servlet Une servlet est une application Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML ou tout autre …   Wikipédia en Français

  • Java servlet — Servlet Une servlet est une application Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML ou tout autre …   Wikipédia en Français

  • Java Servlet — The Java Servlet API allows a software developer to add dynamic content to a Web server using the Java platform. The generated content is commonly HTML, but may be other data such as XML. Servlets are the Java counterpart to non Java dynamic Web… …   Wikipedia

  • Java Servlets — Servlet Une servlet est une application Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML ou tout autre …   Wikipédia en Français

  • Java servlets — Servlet Une servlet est une application Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML ou tout autre …   Wikipédia en Français

  • Servlet Java — Servlet Une servlet est une application Java qui permet de créer dynamiquement des données au sein d un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l être au format XML ou tout autre …   Wikipédia en Français

  • Java 2 Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java 2 Platform Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java EE — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java Platform Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”