06 2Teoria y Ejemplo Servlets

10
1 Ing. Wagner Vicente Ramos TEORIA Y APLICACIÓN DE SERVLETS ¿Qué es un Servlet? Un servlet es un programa Java que se guarda y ejecuta en un servidor J2EE(Java Enterprise Edition). Su función primordial es brindar contenido dinámico desde un servidor web. La interacción entre cliente y servlet se traduce, en la mayoría de los casos, en la generación y posterior envío de una respuesta codificada en html al cliente, pero no tiene por qué ser así: la respuesta podría realizarse en otro tipo de formatos tales como pdf, xml, wml, zip, jar, gif, doc, xls, etc. Usos que tienen los Servlets - Permiten la colaboración entre usuarios. Un servlet puede manejar múltiples peticiones concurrentes, y puede sincronizarlas. Esto permite a los servlets soportar sistemas como conferencias online. - Reenviar Peticiones. Los servlets pueden enviar peticiones a otros servidores o servlets de tal forma que podríamos ejecutar otros programas en el servidor web. - Seguridad. Los servlets ofrecen posibilidad de configuraciones usando alias para sus notaciones registrados en archivos XML. - Acceso a sesiones. Los servlets pueden crear y eliminar una sesión, además de que pueden acceder a ella para registrar información. - Capa de Control. En el patrón de desarrollo Model View Controller, los servlets son usados en la capa de control.

description

ej

Transcript of 06 2Teoria y Ejemplo Servlets

Page 1: 06 2Teoria y Ejemplo Servlets

1 Ing. Wagner Vicente Ramos

TEORIA Y APLICACIÓN DE SERVLETS

¿Qué es un Servlet?

Un servlet es un programa Java que se guarda y ejecuta en un servidor J2EE(Java Enterprise Edition).

Su función primordial es brindar contenido dinámico desde un servidor web.

La interacción entre cliente y servlet se traduce, en la mayoría de los casos, en la generación y posterior envío de una respuesta codificada en html al cliente, pero no tiene por qué ser así: la respuesta podría realizarse en otro tipo de formatos tales como pdf, xml, wml, zip, jar, gif, doc, xls, etc.

Usos que tienen los Servlets

- Permiten la colaboración entre usuarios. Un servlet puede manejar múltiples peticiones concurrentes, y puede sincronizarlas. Esto permite a los servlets soportar sistemas como conferencias online.

- Reenviar Peticiones. Los servlets pueden enviar peticiones a otros servidores o servlets de tal forma que podríamos ejecutar otros programas en el servidor web.

- Seguridad. Los servlets ofrecen posibilidad de configuraciones usando alias para sus notaciones registrados en archivos XML.

- Acceso a sesiones. Los servlets pueden crear y eliminar una sesión, además de que pueden acceder a ella para registrar información.

- Capa de Control. En el patrón de desarrollo Model View Controller, los servlets son usados en la capa de control.

Page 2: 06 2Teoria y Ejemplo Servlets

2 Ing. Wagner Vicente Ramos

Ventajas de los Servlet

- Eficientes: threads en lugar de procesos.

- Convenientes: Múltiples utilidades de alto nivel.

- Potente: Permiten compartir datos, persistencia.

- Portables: Corren en máquinas virtuales.

- Baratos: Servidores de aplicaciones gratuitos.

- Seguros: No shells, no overflows, autocontenidos.

Interacción con el Cliente

Cuando un servlet acepta una llamada de un cliente, recibe dos objetos.

1. HttpServletRequest Representa la comunicación desde el cliente hacia el servidor. El flujo de entrada será del tipo ServletInputStream y permite acceder a la cabecera HTTP y a los datos del cliente y que el servidor podrá usar.

2. HttpServletResponse Representa la comunicación desde el servidor hacia el cliente, donde el flujo será del tipo ServletOutputstream. Además, permite que el servidor envíe información en diversos formatos al Cliente.

Ciclo de Vida de un Servlet

1. El cliente solicita una petición a un servidor vía URL. 2. El servidor recibe la petición.

a. Si es la primera vez, se utiliza el motor de Servlets para cargarlo y se llama al método init().

b. 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() pasando los objetos request y response. 4. Cuando se apaga el motor de un Servlet se llama al método destroy() que lo

destruye y libera los recursos abiertos.

Page 3: 06 2Teoria y Ejemplo Servlets

3 Ing. Wagner Vicente Ramos

Ejemplo demoServlet

Servlet que informará sobre el IP del cliente conectado a nuestro Site.

1. Crear un nuevo proyecto. Archivo / Nuevo Proyecto

Page 4: 06 2Teoria y Ejemplo Servlets

4 Ing. Wagner Vicente Ramos

Page 5: 06 2Teoria y Ejemplo Servlets

5 Ing. Wagner Vicente Ramos

Agregar un Nuevo tipo de Archivo Servlet

- Clic derecho sobre el nombre del proyecto (demoServlet)

- Seleccionar Nuevo / Servlet.

Page 6: 06 2Teoria y Ejemplo Servlets

6 Ing. Wagner Vicente Ramos

Page 7: 06 2Teoria y Ejemplo Servlets

7 Ing. Wagner Vicente Ramos

Después de retirar algunos comentarios, este sería el contenido de nuestro servlet informa:

package controlador;

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 ServletInforma extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

try {

String cliente = request.getRemoteAddr();

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet Informa</title>");

out.println("</head>");

out.println("<body>");

out.println("<h3> Cliente: " + cliente + "</h3>");

out.println("</body>");

out.println("</html>");

} finally {

out.close();

}

}

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

@Override

public String getServletInfo() {

return "Short description";

}// </editor-fold>

}

Page 8: 06 2Teoria y Ejemplo Servlets

8 Ing. Wagner Vicente Ramos

Observe que los métodos doGet() y doPost() redireccionan los objetos request y response al método processRequest(). Esto es útil, pues no sabemos que método usará el cliente para comunicarse con el servlet. La estructura de archivos en el proyecto es:

El archivo web.xml de configuración del proyecto tiene:

Las líneas [3 – 6] especifica que controlador.Servlet (nuestro servlet) se llamará ServletInforma. Las líneas [8 – 11] especifica que ServletInforma se ejecutará desde la raíz del proyecto en el browser. Las líneas [19 – 21] indican que la ejecución del proyecto empieza por index.jsp La línea 15 indica que la sesión estará activa por 30 minutos.

Page 9: 06 2Teoria y Ejemplo Servlets

9 Ing. Wagner Vicente Ramos

Finalmente, el contenido de index.jsp será:

En la línea 11 se llamará al servlet desde la raíz del proyecto y con el alias ServletInforma.

Page 10: 06 2Teoria y Ejemplo Servlets

10 Ing. Wagner Vicente Ramos