PDF de programación - Nivel de presentación - Aplicaciones Web

Imágen de pdf Nivel de presentación - Aplicaciones Web

Nivel de presentación - Aplicaciones Webgráfica de visualizaciones

Publicado el 1 de Junio del 2017
861 visualizaciones desde el 1 de Junio del 2017
2,5 MB
69 paginas
Creado hace 13a (10/08/2010)
Nivel de presentación
Aplicaciones Web

Autores:

Simon Pickin
Natividad Martínez Madrid
Florina Almenárez Mendoza
Pablo Basanta Val

Dirección:

Versión:

Departamento de Ingeniería Telemática
Universidad Carlos III de Madrid
1.0

Software de

Comunicaciones

-

Agradecimientos:

Florina Almenares, IT/UC3M
Natividad Martínez Madrid, IT/UC3M
Simon Pickin, IT/UC3M

Contenido

1. Java Servlets

2. Java Server Pages (JSPs)

3. Integración de servlets y JSPs

Bibliografía:
• Core Servlets and JavaServer Pages. Marty Hall and

Larry Brown. Second Edition. Prentice Hall. 2004

• Java for the Web with Servlets, JSP, and EJB. Budi

Kurniawan. New Riders. 2002. Part I, capítulos 1-5, 8-11, 17

Software de

Comunicaciones

-

• Tecnologías de servidor con Java: Servlets, JavaBeans,

JSP. Ángel Esteban. Grupo EIDOS. 2000

2

1

Arquitectura de una aplicación Web
Servlets/JSPs

Aplicación con una arquitectura “Three-Tier”
(aplicación pequeña sin capa de lógica de negocio)

Cliente

Servlets

JSP pages

Web Container

Presentación

+

Lógica de negocio

Software de

Comunicaciones

-

3

Nivel de presentación:

Java Servlets

Software de

Comunicaciones

-

4

2

Contenido

• Generalidades

– Introducción
– Ventajas
– Ciclo de vida

• API de Servlets

– Interfaces, clases y métodos
– Servlets HTTP
– Forwarding / Including
– Gestión de Sesiones (Session Tracking)

Software de

Comunicaciones

-

5

Introducción a los Servlets (1/2)

• Un servlet es una clase java usada para extender
las capacidades de los servidores que albergan
aplicaciones accedidas mediante un modelo de
programación cliente-servidor

– Usado para extender las capacidades de la web

• Comparable a un programa CGI (Common Gateway

Interface)
– pero con una arquitectura de ejecución diferente

• Gestionados por un contenedor de servlets o un

motor
– JVM + implementación del API del servlet

Software de

Comunicaciones

-

6

3

Introducción a los Servlets (2/2)

Cliente

Navegador

petición

respuesta

Servidor

Contenedor

(JRE)

Servlet

Servlet

Servlet

• Interfaces y clases
– Paquetes javax

javax..servlet

servlet y javax

javax..servlet

servlet..httphttp

Fuente: Web Component Development With Servlet and JSP Technologies

Sun Microsystems (course SL-314-EE5)

• Todos los servlets tienen que implementar el

interfaz
Servlet, que define los métodos de ciclo de vida, o bien
Servlet
heredar de la clase:

Software de

Comunicaciones

-

– GenericServlet para implementar servicios genéricos.
– HttpServlet

para manejar

servicios

HTTP

- extends GenericServlet

específicos.

7

Ventajas de utilizar servlets (1/2)

• Eficiencia

– Un hilo por cada petición pero una única instancia de cada

servlet

• Ventajas en rendimiento: no hay retrasos en las peticiones.
• Ventajas espaciales: menor consumo de memoria
• Escalabilidad

– El servlet mantiene su estado entre diferentes invocaciones:

• conexiones a bases de datos, conexiones de red, etc.

– Ejecución de peticiones mediante la invocación de un método.

• Utilidades para realizar las típicas tareas de servidor

– logging, gestión de errores, cookies, sesiones, …

• Comunicación

Software de

Comunicaciones

-

– Manera estandarizada de comunicación con el servidor
– Los servlets pueden compartir datos

• Permite la creación de pools para acceder a la base de datos, etc

8

4

Ventajas de utilizar servlets (2/2)

• Ventajas de Java

– Gran número de APIs: JDBC, hilos, RMI, red, etc.
– Portabilidad entre plataformas y servidores
– Seguridad:

• máquina virtual, chequeo de tipos, gestión de memoria,

excepciones, etc.

• Gestor de seguridad Java

– Orientación a objetos
– Gran comunidad de desarrolladores
– Disponibilidad de código externo

Software de

Comunicaciones

-

9

Ciclo de vida del servlet



Instanciación e inicialización (en la primera petición)
– Si no existen instancias del servlet, el contenedor web:

• Carga la clase del servlet
• Crea una instancia
• Inicializa la instancia del servlet llamando a init

• Manejo de sucesivas peticiones

– El contenedor crea un hilo que llama al método service

de la instancia

– El método service determina lo que ha llegado en la

petición y llama a un método apropiado

• Destrucción

– Cuando el contenedor decide destruir el servlet, llama a su

método destroy

10

Software de

Comunicaciones

-

5

Consecuencias del ciclo de vida del
servlet (1/2)

• Una única máquina virtual:

– Compartición de datos entre varias instancias

• Persistencia (en memoria) de las instancias

– Consumo de memoria reducido
– Eliminación de los tiempos de inicialización e instanciación
– Persistencia (en memoria) del estado,
los datos y los

recursos

• Atributos persistentes del servlet
• Conexiones a bases de datos persistentes, etc

– Persistencia (en memoria) de los hilos

Software de

Comunicaciones

-

11

Consecuencias del ciclo de vida del
servlet (2/2)

• Peticiones concurrentes

– Se necesita de sincronización para manejar el acceso

concurrente

• Clases, instancias de atributo, bases de datos, etc

– Si el hilo implementa la interfaz SingleThreadModel

• No existe acceso concurrente a las instancias de los atributos

(puede haber acceso concurrente a los atributos de la clase)

• Puede minar el rendimiento de la máquina virtual
• Ha sido marcado como obsoleto (deprecated) desde la

versión 2.4

Software de

Comunicaciones

-

12

6

Contenido: Servlets Java

• Generalidades
– Introducción
– Ventajas
– Tareas de los servlets
– Ciclo de vida
• API de Servlets

– Interfaces, clases y métodos
– Servlets HTTP
– Forwarding / Including
– Gestión de Sesiones

Software de

Comunicaciones

-

13

API de Servlets

• Paquetes

• 3 clases

– javax.servlet

– GenericServlet

• 7 interfaces
– Servlet

– ServletInputStream

– ServletOutputStream

– ServletConfig

• 2 clases de excepciones

– ServletContext

– ServletException

– ServletRequest

– UnavailableException

– ServletResponse

– SingleThreadModel

– RequestDispatcher

Software de

Comunicaciones

-

14

7

Interfaz Servlet Métodos (1/2)

• void init(ServletConfig config)

– Sólo se llama una vez después de instanciar el servlet
– El servlet puede instanciarse según como se haya registrado:

• Cuando el primer usuario accede a la URL del servlet
• O bien cuando se arranca el servidor Web

– Sin argumentos: inicialización independiente del servidor



Inicialización de variables, conexión a base de datos, etc

– Con argumentos: inicialización dependiente del servidor



Información obtenida del descriptor de despliegue web.xml (desde
la especificación 2.3) y almacenado en un objeto ServletConfig

• Configuración de base de datos, ficheros de password, parámetros

de prestaciones del servidor, etc.

• void service(ServletRequest req,
ServletResponse res)

– Es invocado por el contenedor para permitir que el servlet

responda a una petición

15

Software de

Comunicaciones

-

Interfaz Servlet Métodos (2/2)

• void destroy()

– El contenedor puede decidir descargar una instancia de un

servlet

• Decisión del administrador
• Timeout: demasiado tiempo inactivo

– Previamente llama al método destroy

• Cerrar conexiones a bases de datos
• Parar hilos
• Escribir cookies o contador de impactos (hits) a disco
• …

– Si se cae el servidor Web, no se llama al método destroy

• Conclusión: mantener el estado de manera proactiva

(guardar los trastos de forma de regular)

16

Software de

Comunicaciones

-

8

Interfaz ServletConfig (1/3)

• Objeto de configuración usado por el contenedor para pasar

información al servlet durante la inicialización
– Se recupera del descriptor de despliegue web.xml
– Por cada servlet registrado, se pueden especificar un conjunto de

parámetros iniciales (nombre/valor)

<web-app>

<servlet>

<servlet-name>ConfigExample</servlet-name>
<servlet-class>ConfigExampleServlet</servlet-class>
<init-param>

<param-name>adminEmail</param-name>
<param-value>[email protected]</param-value>

</init-param>
<init-param> . . . </init-param>

</servlet>
. . .

</web-app>

Software de

Comunicaciones

-

17

Interfaz ServletConfig (2/2)

• Ejemplo: sobreescribir el método init para imprimir
objeto

contenida

en

el

la
información
ServletConfig

public void init(ServletConfig config) throws ServletException {

Enumeration parameters = config.getInitParameterNames();
while (parameters.hasMoreElements()) {

String parameter = (String) parameters.nextElement();
System.out.println("Parameter name : " + parameter);
System.out.println("Parameter value : " +

config.getInitParameter(parameter));

}

}

Software de

Comunicaciones

-

18

9

Interface ServletConfig (3/3)

• Si el método init (con paramétros) de la interfaz Servlet
(implementado el clase GenericServlet) es refenido, el
objeto ServletConfig no será salvado y no estará
disponible después de la inicialización.

• Solución: o bien llamar a Servlet.init(super.init si se
extiende la clase GenericServlet o HttpServlet) desde
dentro del init redefinido os i explícitamente se salva:

ServletConfig servlet_config;
public void init(ServletConfig config) throws

ServletException {
servlet_config = config;
}

Software de

Comunicaciones

-

La ventaja de esta última solución es que en este caso el
objeto ServletConfig estará disponible a través del método
getServletConfig mientras que la segunda solución no lo
estará.

19

Interfaz ServletContext

• Define un conjunto de métodos usados por el servlet para

comunicarse

repartidores de peticiones (“dispatcher”), etc.)

– Con otros servlets de la misma aplicación Web

– Con su contenedor

(obtener el

tipo MIME de un fichero,

• Hay un contexto

– Por cada aplicación Web

– Por cada JVM

• Aplicación Web

– colección de servlets, JSPs y otros recursos instalados en un
subconjunto específico (subdirectorio) del espacio de nombres
del servidor

• La información sobre la aplicación web a la que pertenece un

servlet se almacena en el objeto ServletConfig

20

Software de

Comunicaciones

-

10

Atribut
  • Links de descarga
http://lwp-l.com/pdf3849

Comentarios de: Nivel de presentación - Aplicaciones Web (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