Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sesion 4. Desarrollo de Componentes Web Con Servlets y JSP PDF
Sesion 4. Desarrollo de Componentes Web Con Servlets y JSP PDF
Arquitectura cliente-servidor
de HTTP
Tecnologías de aplicaciones web
Java Servlets
Tecnologías de aplicaciones web
Tipos de componentes
visuales
Presentación de datos
Incluye todos los datos presentados en una pantalla visible.
Existen numerosas formas de presentación, como gráficos,
hojas de cálculo, listados, etc.
Formularios de datos
Los formularios de entrada de datos también se consideran
componentes visuales.
Ayudas de navegación
Este tipo de vistas incluye menús, hipervínculos, mapas del
sitio, etc.
Pantallas informativas o ventanas emergentes
Este tipo de vistas incluye texto de bienvenida,
instrucciones, pantallas de ayuda, mensajes de error,
cuadros de confirmación, etc.
Desarrollo de componentes visuales
Inicial
Lista de ligas
Protocolo de
transferencia de
hipertexto
(HTTP)
Desarrollo de componentes visuales
Respuesta HTTP
Desarrollo de componentes visuales
Arquitectura de contenedor
web
Desarrollo de componentes visuales
Proceso de solicitud y
respuesta
1. El navegador se conecta al contenedor
web
2. El contenedor web crea dos objetos
con los flujos de entrada/salida
3. El contenedor web ejecuta el servlet
4. El servlet utiliza el flujo de salida para
generar la respuesta
Desarrollo de componentes visuales
ContentType[W]
Attributes[R/W/D] Writer[W]
Parameters[R] OutputStream[W]
Session[R/W/D] Cookies[W]
HttpServeltRequest HttpServletResponse
service()
service ()
Desarrollo de componentes visuales
Desarrollo de un servlet de
HTTP simple
La API de HttpServlet
Desarrollo de componentes visuales
Estructura física de la
aplicación: fichero WAR
Estructura lógica
Desarrollo de componentes visuales
Configuración de la aplicación:
web.xml
Desarrollo de componentes visuales
Configuración de la aplicación:
web.xml
Contenidos
Desarrollo de componentes controladores
Tipos de componentes
controladores
Procesan la entrada del usuario
La entrada de una solicitud HTTP se suministra mediante
formularios web (o HTML). Estos formularios permiten al usuario
introducir datos de texto, seleccionar botones de opción, casillas de
verificación, listas desplegables, etc. En los formularios web se usa
un botón de envío para enviar los datos al servidor web.
Permiten navegar por la pantalla
En un nivel elemental, los hipervínculos de las páginas web son
una forma de navegación en pantalla. Algunos mecanismos de
navegación pueden requerir datos (como usar una lista
desplegable) para seleccionar la próxima pantalla donde navegar.
Preparan datos para componentes visuales
Algunos controladores sólo pueden preparar datos de negocio para
presentarlos en una vista. Un buen ejemplo de ello son los
informes.
Desarrollo de componentes controladores
Éxito
Success
Desarrollo de componentes controladores
Error
Error
Desarrollo de componentes controladores
Estructura de la solución
Jerarquía física
Jerarquía lógica
Desarrollo de componentes controladores
Desarrollo de servlets
controladores
1. Recuperar parámetros del formulario
de la solicitud HTTP.
2. Efectuar las conversiones de datos de
los parámetros del formulario.
3. Verificar los parámetros del formulario.
4. Ejecutar la lógica de negocio.
5. Distribuir a los siguientes componentes
visuales según los resultados de los
pasos anteriores.
Desarrollo de componentes controladores
Controlador AddLeague
Ej: Ligas v.2
Desarrollo de componentes controladores
Uso de un distribuidor de
solicitudes
Contenidos
Desarrollo de formularios dinámicos
Uso de parámetros de
inicialización
La API de ServletConfig
Desarrollo de formularios dinámicos
Configuración de parámetros
de inicialización
Desarrollo de formularios dinámicos
Manejo de errores en un
formulario web
Desarrollo de formularios dinámicos
Capturas de pantalla de
manejo de errores
Estructura de la aplicación
Estructura física
Desarrollo de formularios dinámicos
Contexto de servlet
Un objeto ServletContext es la representación de
tiempo de ejecución de la aplicación web
Compartición de recursos mediante el contexto de servlet
Modelo de arquitectura de la
liga de fútbol
Desarrollo de un receptor de
eventos de contexto de servlet
Modificaciones:
web.xml,
estructura
Diseño de la capa de negocio
Caso de uso:
registro en una liga
Diseño de la capa de negocio
Diagrama de colaboración
Diseño de la capa de negocio
Diagrama de secuencia
Diseño de la capa de negocio
Diagrama de despliegue
Entidades de dominio
Diseño de la capa de negocio
Diseño de componentes de
servicio
Las operaciones CRUD relativas a
entidades no las puede realizar el
componente de entidad en sí
Diseño de la capa de negocio
Servicio de fachada
Menor acoplamiento
Contenidos
Desarrollo de aplicaciones web mediante Struts
Un solo servlet
Procesamiento de solicitudes
de Struts
Desarrollo de aplicaciones web mediante Struts
Archivos JAR
de Struts
Contenidos
Desarrollo de aplicaciones web mediante gestión de sesión
Caso de uso:
Registrarse en una liga
Pantallas, formularios,
servlets, actions, forwards…
Desarrollo de aplicaciones web mediante gestión de sesión
API de sesión
Desarrollo de aplicaciones web mediante gestión de sesión
Interfaz HttpSession
Timeout
Deprecated methods
Creación / Cierre
Desarrollo de aplicaciones web mediante gestión de sesión
Timeout de sesión
Configurado en web.xml
API de Cookie
Desarrollo de aplicaciones web mediante gestión de sesión
En primera conexión
En resto de conexiones…
Desarrollo de aplicaciones web mediante gestión de sesión
Procesado de peticiones
Uso de filtros en aplicaciones web
Aplicación de filtros a
solicitudes entrantes
Cadenas de filtros
Uso de filtros en aplicaciones web
Aplicación de filtros a
solicitudes en dispatch
Uso de filtros en aplicaciones web
API de filtro
Uso de filtros en aplicaciones web
Configuración
en web.xml
Precedencia en la aplicación
Contenidos
Integración de aplicaciones web con bases de datos
Objetos de
dominio y
tablas
Integración de aplicaciones web con bases de datos
Oculta la gestión
del SQL las
clases de
Servicio
Integración de aplicaciones web con bases de datos
Desarrollo e implementación
de páginas de JSP
Elementos de secuencia de
comandos de JSP
Directivas JSP
Las directivas son mensajes al contenedor
de JSP
Ejemplos:
Elemento Descripción
Permite importar clases Java, especificar el
<%@ page ... %> tipo de la respuesta (“text/html” por omisión),
etcétera
Permite incluir otros ficheros antes de que la
<%@ include ... %>
página sea traducida a un servlet
Declara una biblioteca de etiquetas con
<%@ taglib ... %> acciones personalizadas para ser utilizadas en
la página
Desarrollo de páginas JSP
Directiva page
Desarrollo de páginas JSP
Directiva import
Inserta el texto de otro recurso en
tiempo de compilación
Desarrollo de páginas JSP
Elementos de “scripting”
Elemento Descripción
<% ... %> Scriptlet.. se usa para meter código Java dentro
Scriptlet
Expresión. Permite acceder al valor devuelto por
Expresión.
<%= ... %>
una expresión en Java e imprimirlo en OUT
Declaración. Usada para declarar variables y
Declaración.
<%! ... %>
métodos en la clase correspondiente a la página
Comentario. Comentario ignorado cuando se
Comentario.
<%
<%--
-- … -- %> traduce la página JSP en un servlet.
--%>
(comentario en el HTML <!--
<!-- comment )
Desarrollo de páginas JSP
expresión
<%
Desarrollo de páginas JSP
Ejemplo: declaración,
saludo.jsp
<%!
Desarrollo de páginas JSP
Acciones JSP
Etiquetas XML que tienen
procesamiento asociado
Desarrollo de páginas JSP
<jsp:useBean
Desarrollo de páginas JSP
<jsp:useBean id=“”
Desarrollo de páginas JSP
Ambitos JSP
Desarrollo de páginas JSP
Directiva taglib
Declara que la página usa una librería
de tags (acciones)
<%@ taglib uri=”http://www.mycorp/supertags” prefix=”super” %>
...
<super:doMagic>
Alias definido en web.xml
...
</super:doMagic>
Con etiquetas
Con scriplet
Desarrollo de páginas JSP con etiquetas personalizadas
Etiquetas JSTL
Desarrollo de páginas JSP con etiquetas personalizadas
Acciones básicas
Desarrollo de páginas JSP con etiquetas personalizadas
Acciones básicas++
Desarrollo de páginas JSP con etiquetas personalizadas
Procesamiento de XML
Desarrollo de páginas JSP con etiquetas personalizadas
Acciones de formato
Desarrollo de páginas JSP con etiquetas personalizadas
Acciones de formato
Desarrollo de páginas JSP con etiquetas personalizadas
Funciones
Desarrollo de páginas JSP con etiquetas personalizadas
Funciones
Contenidos
Desarrollo de aplicaciones web mediante formularios de acción de Struts
Componentes de aplicación de
Struts
Desarrollo de aplicaciones web mediante formularios de acción de Struts
Un objeto representa
al formulario
Desarrollo de aplicaciones web mediante formularios de acción de Struts
@copyright
Creación de componentes de presentación reutilizables
Organización de segmentos de
presentación
Creación de componentes de presentación reutilizables
Inclusión de segmentos en
páginas de JSP
La directiva include
Segmento banner.jsp
Creación de componentes de presentación reutilizables
thakyou.jsp
Ligas v.x
Resumen de versiones
V.0: contenido estático
V.1: lista de ligas dinámica
V.2: añadir ligas, formulario estático
V.2.1: form con servlet, lista estaciones en servelt-param
V.3: gestión de errores de formulario, doPost y doGet
V.3.1: no se pierden datos en formulario erróneo
V.4: cargar ligas de contexto de aplicación
V.4.1: cargar datos de fichero
V.5: capa de servicio
V.6: añade Struts
V.7: gestión de la sesión
V.8: filtro
V.9: vista con jsp, tags jsp y formularios Struts