PDF de programación - Tema13: Servlets y JSP

Imágen de pdf Tema13: Servlets y JSP

Tema13: Servlets y JSPgráfica de visualizaciones

Actualizado el 14 de Marzo del 2019 (Publicado el 13 de Julio del 2018)
705 visualizaciones desde el 13 de Julio del 2018
182,5 KB
53 paginas
Creado hace 17a (26/04/2007)
Tema 13: Servlets y JSP

1. Servlets.

Introducción.

1.
2. Objeto Request.
3. Objeto Response.
4. Cookies.
5. Sesiones.

2. JSP.

Introducción.

1.
2. Elementos JSP.
3. Java Beans.
4. Etiquetas

personalizadas.

5. JDBC
6.

Integración
Servlets y JSP

ARS - 2007

Servlets y JSP

1

SERVLETS: 1.1 Introducción

¿Qué son? (I)

Los Servlets son la alternativa Java a los CGIs.
Actúan como capa intermedia entre:

Petición proveniente de un Navegador Web u otro cliente HTTP
Bases de Datos o Aplicaciones en el servidor HTTP

Son aplicaciones Java especiales, que extienden la

funcionalidad del servidor HTTP, dedicadas a:
Leer los datos enviados por el cliente.
Extraer cualquier información útil incluida en la cabecera HTTP o

en el cuerpo del mensaje de petición enviado por el cliente.

Generar dinámicamente resultados.
Formatear los resultados en un documento HTML.
Establecer los parámetros HTTP adecuados incluidos en la

cabecera de la respuesta (por ejemplo: el tipo de documento,
cookies, etc.)

Enviar el documento final al cliente.

ARS - 2007

Servlets y JSP

2

SERVLETS: 1.1 Introducción

¿Qué son? (II)

ARS - 2007

Servlets y JSP

3

SERVLETS: 1.1 Introducción

¿Qué son? (III)

Los objetos servlets cumplen los siguientes requisitos:

Están basados en el marco de Servlets.
Utilizan el “Servlet Application Programming Interface” (SAPI)
El interfaz SAPI define una manera estándar para que las

peticiones HTTP sean procesadas por esta clase Java
(independiente del servidor).

Asociados a la URL de la petición, son manejados por el

contenedor de servlets con una arquitectura simple.
El contenedor provee el entorno de ejecución para todos los

servlets basados en los anteriores requisitos.

Disponibles para la gran mayoría de servidores web.
Son independientes de la plataforma y del servidor.

ARS - 2007

Servlets y JSP

4

SERVLETS: 1.1 Introducción

Ventajas de los Servlets

Cada petición por parte de un cliente crea un hilo, no un nuevo

proceso como ocurría con los CGIs tradicionales.

Son programados en Java, por lo que se puede emplear todas las

clases y herramientas disponibles para esta plataforma.

Controlada por la máquina virtual de Java.
La mayoría de problemas de seguridad encontrados en los CGIs

no aparecen en los Servlets.

Puede ser utilizados sobre cualquier SO. y en la mayoría de

Eficiencia.

Potencia.

Seguridad.

Portabilidad.

servidores Web.

Precio.

ARS - 2007

Normalmente todo el software necesario es gratis.

Servlets y JSP

5

SERVLETS: 1.1 Introducción

Ventajas de los Servlets

ARS - 2007

Servlets y JSP

6

SERVLETS: 1.1 Introducción

Arquitectura de los Servlets

Para implementar los servlets se hace uso de:

javax.servlet: entorno básico
javax.servlet.http: extensión para servlets http.

Servlet

HttpServlet

MiServlet

ARS - 2007

Servlets y JSP

7

SERVLETS: 1.1 Introducción
Estructura básica

throws ServletException, IOException

{

public void doGet(HttpServletRequest request,

import java.io.*;
// Para PrintWriter
import javax.servlet.*;
// Para ServletException
import javax.servlet.http.*; // Para HttpServlet*
public class PlantillaServlet extends HttpServlet {
HttpServletResponse response)
// El objeto "request" se utiliza para leer la
// cabecera HTTP, cookies, datos enviados (GET o POST)
// El objeto "response" para fijar la respuesta
PrintWriter out = response.getWriter();
// out Se utiliza para enviar el contenido al cliente
}
// Idem para el método doPost

}

ARS - 2007

Servlets y JSP

8

SERVLETS: 1.1 Introducción

Ejemplo

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HolaMundo extends HttpServlet {

public void doGet(HttpServletRequest request,

}

}

ARS - 2007

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " +

"HTML 4.0 Transitional//EN\">" +
"<html> <head><title>Hola Mundo</title></head>" +
"<body> <h1>Hola Mundo</h1> </body></html>");

Servlets y JSP

9

SERVLETS: 1.1 Introducción

Compilando e Invocando el Servlet

EL principal servidor (gratuito) de servlets y JSP es

“Tomcat” de Apache
(http://jakarta.apache.org/tomcat)

Pasos a seguir para el servidor Tomcat:

Verificar que el servidor está corriendo
Compilar el servlet:

> javac –classpath dir_instalacion/lib/servlet.jar nom_servlet

Situar el servlet compilado en una dirección adecuada:

> cp nom_servlet.class dir_tomcat/webapps/ROOT/WEB-

INF/classes

Invocar el servlet desde el browser:

> http://servidor:puerto/servlet/nom_servlet
(El puerto se configura en dir_install/conf/server.xml)

ARS - 2007

Servlets y JSP

10

SERVLETS: 1.1 Introducción

Ciclo de vida de un servlet

El servidor recibe una petición que ha de ser manejada

por un servlet.

El servidor comprueba si existe una instancia creada en

memoria de la clase servlet correspondiente. Si no, la
crea.

Las peticiones posteriores de otros usuarios utilizarán la

misma instancia.

El objeto servlet permanece en memoria mientras el

servidor siga en funcionamiento.

ARS - 2007

Servlets y JSP

11

SERVLETS: 1.1 Introducción

Diagrama del ciclo de vida

Cargar
Servlet

NO

Petición
HTTP

Recepción

de la
petición

SAPI

¿Servlet en
Memoria?

SI

Ejecutar
Servlet

SAPI

Contenedor Servlets / JSP

Servidor HTTP

Envío de

la

respuesta

Respuesta
HTTP

ARS - 2007

Servlets y JSP

12

SERVLETS: 1.1 Introducción

Métodos implícitos (ciclo de vida)

init

Se ejecuta una vez, la primera vez que es invocado el servlet (el
servlet se carga en memoria y se ejecuta sólo la primera vez que
es invocado. El resto de peticiones generan un hilo).

service (no debe sobreescribirse)

Se ejecuta cada vez que se produce una nueva petición.
Dentro de esta función se invoca a doGet o a doPost.

doGet y doPost

Manejan las peticiones GET y POST.
Incluyen el código principal del servlet

estos métodos.

destroy

La ejecución del servlet finalizará cuando termine la ejecución de

Se invoca cuando el servidor decide eliminar el servlet de la

memoria (NO después de cada petición).

ARS - 2007

Servlets y JSP

13

SERVLETS: 1.1 Introducción

Ciclo de ejecución de los métodos

Evento de inicio
(primera petición)

Petición

Respuesta

Evento de
destrucción

init()

service()

doGet()

doPost()

destroy()

Servlet

ARS - 2007

Servlets y JSP

14

SERVLETS: 1.1 Introducción

Objetos implícitos (I)

Existen una serie de objetos implícitos, disponibles dentro
de nuestros servlets (instanciados por el propio contenedor
de servlets y JSP).

Objeto request

Es una instancia de HttpServletRequest
(javax.servlet.http.HttpServletRequest)

Recoge la información enviada desde el cliente.

Objeto response

Es una instancia de HttpServletResponse

(javax.servlet.http.HttpServletRequest)
Organiza los datos enviados al cliente.

Objeto session

Es una instancia de HttpSession (javax.servlet.http.HttpSession)
Almacena información con ámbito de sesión.

ARS - 2007

Servlets y JSP

15

SERVLETS: 1.1 Introducción

Objetos implícitos (II)

Objeto application

Es una instancia de ServletContenxt (javax.servlet.ServletContext)
Almacena información con ámbito de aplicación.
------------------------------------------------------------------------

Objeto out

Es una instancia de PrintWriter (java.io.PrintWriter)
Escribe contenido dentro de la página HTML.

Objeto config

Es una instancia de ServletConfig (javax.servlet.ServletConfig)
Contiene información relacionada con la configuración del servlet.

ARS - 2007

Servlets y JSP

16

SERVLETS: 1.1 Introducción

Ejemplo (I)

public class MuestraMensaje extends HttpServlet {

private String mensaje;
private String mensaje_por_defecto = "No hay mensaje";
private int repeticiones = 1;
public void init() throws ServletException {

ServletConfig config = getServletConfig();
mensaje = config.getInitParameter("mensaje");
if (mensaje == null) {
}
try {

mensaje = mensaje_por_defecto;

String repetir_cad =
config.getInitParameter("repeticiones");
repeticiones = Integer.parseInt(repetir_cad);

} catch(NumberFormatException nfe) {}

}
ARS - 2007

Servlets y JSP

17

SERVLETS: 1.1 Introducción

Ejemplo (II)

// (continua ..)

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
String titulo = "Servlet MuestraMensaje";
out.println("HTML 4.0 Transitional//EN\">" +
"<html><head><title>" +titulo + "</title></head>" +
"<body bgcolor=\"#FDF5E6\">\n" +
"<h1 align=\"center\">" + titulo + "</h1>");
for(int i=0; i< repeticiones; i++)
out.println("</body></html>");

out.println(mensaje + "<br>");

Servlets y JSP

18

}

}

ARS - 2007

SERVLETS: 1.2 Objeto Request

Datos enviados desde el cliente

El objeto request contiene todos los datos enviados

desde el cliente al servidor.

Todos los servlets implementan la interfaz

ServletRequest, que define métodos para acceder a:
Los parámetros enviados por el cliente dentro de la URL o dentro

del cuerpo del mensaje (p.e. a partir de un formulario)
  • Links de descarga
http://lwp-l.com/pdf12501

Comentarios de: Tema13: Servlets y JSP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad