Está en la página 1de 167

Desarrollo de Componentes Web con Servlets y JSP

Contenidos

Tecnologas de aplicaciones web

Arquitectura cliente-servidor de HTTP

Tecnologas de aplicaciones web

Estructura de un sitio web


Estructura lgica vs fsica del sitio

Localizador uniforme de recursos

Tecnologas de aplicaciones web

Sitios web y aplicaciones web


Un sitio web es una coleccin de archivos estticos, pginas HTML, grficos y otros archivos diversos. Una aplicacin web es un sitio web con funcionalidad dinmica en el servidor. Una aplicacin web ejecuta programas en el servidor. Un Servicio Web es un servicio que una aplicacin ofrece a otra a travs de World Wide Web y transferencia de datos en XML.

Tecnologas de aplicaciones web

Ejecucin de programas CGI

Tecnologas de aplicaciones web

Ejecucin de programas CGI

Tecnologas de aplicaciones web

Ejecucin de servlets Java

Tecnologas de aplicaciones web

Java Servlets

Tecnologas de aplicaciones web

Tecnologa JavaServer Pages

Comparacin entre servlets y componentes JSP

JSP: Proceso de compilacin

Comparacin entre servlets y componentes JSP

Ejemplo: de JSP a Servlet (Tomcat)

Tecnologas de aplicaciones web

Arquitectura web: capas

Tecnologas de aplicaciones web

Arquitectura web: MVC

Tecnologas de aplicaciones web

Arquitectura del modelo 2

Tecnologas de aplicaciones web

Ejemplo de arquitectura Java EE

Contenidos

Desarrollo de componentes visuales

Tipos de componentes visuales


Presentacin de datos
Incluye todos los datos presentados en una pantalla visible. Existen numerosas formas de presentacin, como grficos, hojas de clculo, listados, etc.

Formularios de datos
Los formularios de entrada de datos tambin se consideran componentes visuales.

Ayudas de navegacin
Este tipo de vistas incluye mens, hipervnculos, 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 confirmacin, etc.

Desarrollo de componentes visuales

Caso de ejemplo de liga de ftbol

Desarrollo de componentes visuales

Modelo de anlisis de un caso de uso

Desarrollo de componentes visuales

Pginas de List Leagues


Inicial

Lista de ligas
Ej: Ligas v.0

Desarrollo de componentes visuales

Protocolo de transferencia de hipertexto (HTTP)

Desarrollo de componentes visuales

Solicitud HTTP: mtodo GET

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

1: El navegador se conecta al contenedor web

Desarrollo de componentes visuales

2: Contenedor web crea dos objetos con flujos entrada/salida

Desarrollo de componentes visuales

3: El contenedor web ejecuta el servlet

Desarrollo de componentes visuales

4: El servlet utiliza el flujo de salida para generar la respuesta

Desarrollo de componentes visuales

Diagrama de secuencia de una solicitud HTTP GET

Utilizacin de las API de peticin y respuesta

Utilizacin de las API de peticin y respuesta


WebContainer ContentType[W] Attributes[R/W/D] Parameters[R] Session[R/W/D] Cookies [R] HttpServeltRequest Writer[W] OutputStream[W] Cookies[W] Redirect[W] HttpServletResponse

service() service()

Desarrollo de componentes visuales

Desarrollo de un servlet de HTTP simple

Ej: Ligas v.1

Desarrollo de componentes visuales

La API de HttpServlet

Desarrollo de componentes visuales

Estructura fsica de la aplicacin: fichero WAR

Estructura lgica

Desarrollo de componentes visuales

Configuracin de la aplicacin: web.xml

Desarrollo de componentes visuales

Configuracin de la aplicacin: 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 opcin, casillas de verificacin, listas desplegables, etc. En los formularios web se usa un botn de envo para enviar los datos al servidor web.

Permiten navegar por la pantalla


En un nivel elemental, los hipervnculos de las pginas web son una forma de navegacin en pantalla. Algunos mecanismos de navegacin pueden requerir datos (como usar una lista desplegable) para seleccionar la prxima pantalla donde navegar.

Preparan datos para componentes visuales


Algunos controladores slo pueden preparar datos de negocio para presentarlos en una vista. Un buen ejemplo de ello son los informes.

Desarrollo de componentes controladores

Add a New League : Modelo de anlisis

Desarrollo de componentes controladores

Add a New League: Modelo de anlisis

Desarrollo de componentes controladores

xito
Success

Desarrollo de componentes controladores

Error
Error

Desarrollo de componentes controladores

Estructura de la solucin
Jerarqua fsica Jerarqua lgica

Desarrollo de componentes controladores

Solicitud de mtodo HTTP GET

Desarrollo de componentes controladores

Solicitud de mtodo HTTP POST

Desarrollo de componentes controladores

Mtodos HTTP GET y POST


El mtodo HTTP GET se utiliza cuando:
El procesamiento de la solicitud es idempotente.
Esto significa que la solicitud no tiene efectos secundarios en el servidor.

La cantidad de datos del formulario es pequea. Se desea asignar un marcador a la solicitud.

El mtodo HTTP POST se utiliza cuando:


El procesamiento de la solicitud modifica el estado del servidor, como al almacenar datos en una base de datos. La cantidad de datos del formulario es grande. El contenido de los datos no debe aparecer en la URL (por ejemplo, contraseas).

Desarrollo de componentes controladores

Desarrollo de servlets controladores


1. Recuperar parmetros del formulario de la solicitud HTTP. 2. Efectuar las conversiones de datos de los parmetros del formulario. 3. Verificar los parmetros del formulario. 4. Ejecutar la lgica de negocio. 5. Distribuir a los siguientes componentes visuales segn los resultados de los pasos anteriores.

Desarrollo de componentes controladores

Controlador AddLeague
Ej: Ligas v.2

Desarrollo de componentes controladores

Distribucin (dispatch) desde el controlador a una vista

Desarrollo de componentes controladores

mbito de solicitud (Request)

Ej: Ligas v.2 Ej: Ligas v.2.1

Desarrollo de componentes controladores

Uso de un distribuidor de solicitudes

Contenidos

Desarrollo de formularios dinmicos

Ciclo de vida de un servlet

Desarrollo de formularios dinmicos

1 Carga de clases de servlet

Desarrollo de formularios dinmicos

Una instancia por definicin de servlet

Desarrollo de formularios dinmicos

2: Mtodo de ciclo de vida init()

Desarrollo de formularios dinmicos

3: Mtodo de ciclo de vida service()

Desarrollo de formularios dinmicos

Mtodo de ciclo de vida destroy()

Desarrollo de formularios dinmicos

Uso de parmetros de inicializacin

Ej: Ligas v.2.1

Desarrollo de formularios dinmicos

Modelo de arquitectura de Add League (fase 1)

Ej: Ligas v.2.1

Desarrollo de formularios dinmicos

La API de ServletConfig

Desarrollo de formularios dinmicos

Configuracin de parmetros de inicializacin

Desarrollo de formularios dinmicos

Manejo de errores en un formulario web

Desarrollo de formularios dinmicos

Capturas de pantalla de manejo de errores

Ej: Ligas v.3 Ej: Ligas v.3.1

Desarrollo de formularios dinmicos

Modelo de arquitectura de Add League (fase 2)

Ej: Ligas v.3.1

Desarrollo de formularios dinmicos

Estructura de la aplicacin
Estructura fsica

Desarrollo de formularios dinmicos

Cmo volver a rellenar formularios web

Contenidos

Comparticin de recursos mediante el contexto de servlet

Ejemplo de uso del contexto

Comparticin de recursos mediante el contexto de servlet

Contexto de servlet
Un objeto ServletContext es la representacin de tiempo de ejecucin de la aplicacin web

Comparticin de recursos mediante el contexto de servlet

Modelo de arquitectura de la liga de ftbol

Ej: Ligas v.4

Comparticin de recursos mediante el contexto de servlet

Desarrollo de un receptor de eventos de contexto de servlet

Ej: Ligas v.4.1

Comparticin de recursos mediante el contexto de servlet

Modificaciones: web.xml, estructura

Diseo de la capa de negocio

Caso de uso: registro en una liga

Diseo de la capa de negocio

Diagrama de colaboracin

Diseo de la capa de negocio

Diagrama de secuencia

Diseo de la capa de negocio

Diagrama de despliegue

Ej: Ligas v.5

Diseo de la capa de negocio

Entidades de dominio

Diseo de la capa de negocio

Diseo de componentes de servicio


Las operaciones CRUD relativas a entidades no las puede realizar el componente de entidad en s

Diseo de la capa de negocio

Servicio de fachada

Menor acoplamiento

Contenidos

Desarrollo de aplicaciones web mediante Struts

Patrn MVC hasta ahora

Desarrollo de aplicaciones web mediante Struts

MVC en Framework Struts

Un solo servlet

Ej: Ligas v.6

Desarrollo de aplicaciones web mediante Struts

Patrn Frontal Controller


Todas las peticiones *.do pasan por el Action Servlet Struts

Desarrollo de aplicaciones web mediante Struts

Estructura MVC de Struts


Servlet de controlador de infraestructura
Struts suministra la clase ActionServlet.
Este servlet (y otras clases de soporte) leen el archivo de configuracin de Struts para configurar las asignaciones entre los patrones URL y las clases de accin (controlador).

Clases bsicas
La estructura Struts tiene numerosas clases. Al construir una aplicacin, puede concentrarse en ampliar slo algunas de ellas. En concreto, se hereda de la clase Action para crear componentes controladores.

Archivos de configuracin
Struts proporciona la definicin de tipo de documento (DTD) del archivo struts-config.xml.

Desarrollo de aplicaciones web mediante Struts

Procesamiento de solicitudes de Struts

Desarrollo de aplicaciones web mediante Struts

API de clases Action de Struts

Desarrollo de aplicaciones web mediante Struts

Configuracin del controlador de infraestructura

Desarrollo de aplicaciones web mediante Struts

Archivos JAR de Struts

Contenidos

Desarrollo de aplicaciones web mediante gestin de sesin

Sesiones de contenedor web


HTTP es un protocolo sin sesin El contenedor se encarga de la gestin

Desarrollo de aplicaciones web mediante gestin de sesin

Caso de uso: Registrarse en una liga

Ej: Ligas v.7

Desarrollo de aplicaciones web mediante gestin de sesin

Pantallas, formularios, servlets, actions, forwards

Desarrollo de aplicaciones web mediante gestin de sesin

API de sesin

Desarrollo de aplicaciones web mediante gestin de sesin

Interfaz HttpSession

Timeout

Deprecated methods

Creacin / Cierre

Desarrollo de aplicaciones web mediante gestin de sesin

Timeout de sesin
Configurado en web.xml

Manejado por API

Desarrollo de aplicaciones web mediante gestin de sesin

API de Cookie

Desarrollo de aplicaciones web mediante gestin de sesin

Gestin de sesin mediante cookies Nombre estandarizado


En primera conexin

En resto de conexiones

Desarrollo de aplicaciones web mediante gestin de sesin

Uso de reescritura de URL para gestin de sesin

Contenidos

Uso de filtros en aplicaciones web

Procesado de peticiones

Uso de filtros en aplicaciones web

Aplicacin de filtros a solicitudes entrantes

Ej: Ligas v.8

Uso de filtros en aplicaciones web

Cadenas de filtros

Uso de filtros en aplicaciones web

Uso modular de filtros

Uso de filtros en aplicaciones web

Aplicacin de filtros a solicitudes en dispatch

Uso de filtros en aplicaciones web

API de filtro

Uso de filtros en aplicaciones web

Configuracin en web.xml

Precedencia en la aplicacin

Contenidos

Integracin de aplicaciones web con bases de datos

Objetos de dominio y tablas

Integracin de aplicaciones web con bases de datos

Patrn de objeto de acceso a datos (DAO)

Oculta la gestin del SQL las clases de Servicio

Integracin de aplicaciones web con bases de datos

Ventajas del patrn DAO


La lgica de negocio y la lgica de acceso a datos estn separadas. Los objetos de acceso a datos fomentan la reutilizacin y la flexibilidad al cambiar el sistema.
Se pueden crear nuevos servicios de negocio que reutilicen la lgica de acceso a datos en las clases DAO.

Los desarrolladores que escriben otros servlets pueden reutilizar el mismo cdigo de acceso a datos. Permite realizar cambios en tecnologas de cliente (frontend). Permite cambiar los componentes de la capa de web sin alterar la lgica de acceso a datos existente. Permite realizar cambios en tecnologas de BDD.

Integracin de aplicaciones web con bases de datos

Uso de una fuente de datos y la API JNDI

Contenidos

Desarrollo de pginas JSP

Tecnologa JavaServer Pages


Los diseadores web disean sin saber Java Programadores escriben cdigo sin preocuparse por el diseo web

Desarrollo de pginas JSP

Tecnologa JavaServer Pages

Desarrollo de pginas JSP

Cmo se procesa una pgina de JSP

Desarrollo de pginas JSP

Cmo se procesa una pgina de JSP

Desarrollo de pginas JSP

Desarrollo e implementacin de pginas de JSP

Jerarqua de implementacin

Jerarqua lgica

Desarrollo de pginas JSP

Elementos de secuencia de comandos de JSP

Las secuencias de comandos estn desaconsejadas

Desarrollo de pginas JSP

Elementos en las pginas JSP

Desarrollo de pginas JSP

Formas sintcticas de las etiquetas JSP

Desarrollo de pginas JSP


Forma general: <%@ directive { attr=value }* %>

Directivas JSP
Las directivas son mensajes al contenedor de JSP Ejemplos:
Elemento
<%@ page ... %>

Descripcin Permite importar clases Java, especificar el tipo de la respuesta (text/html por omisin), etctera Permite incluir otros ficheros antes de que la pgina sea traducida a un servlet Declara una biblioteca de etiquetas con acciones personalizadas para ser utilizadas en la pgina

<%@ include ... %>

<%@ taglib ... %>

Desarrollo de pginas JSP

Directiva page

Desarrollo de pginas JSP

Directiva import
Inserta el texto de otro recurso en tiempo de compilacin

Desarrollo de pginas JSP

Ejemplo: directiva include

Desarrollo de pginas JSP

Elementos de scripting
Elemento
<% ... %> <%= ... %> <%! ... %>

Descripcin
Scriptlet. Scriptlet. se usa para meter cdigo Java dentro Expresin. Expresin. Permite acceder al valor devuelto por una expresin en Java e imprimirlo en OUT Declaracin. Declaracin. Usada para declarar variables y mtodos en la clase correspondiente a la pgina

Comentario. Comentario. Comentario ignorado cuando se <%-- --%> traduce la pgina JSP en un servlet. <%---%> (comentario en el HTML <!-- comment ) <!--

Desarrollo de pginas JSP

Ejemplo: expresin, saludo.jsp


<%=

expresin

Nota: Si se necesita usar los caracteres "%>" dentro de un scriptlet, hay que usar "%\>" y <\%

Desarrollo de pginas JSP

Ejemplo: scriptlet, saludo.jsp


<%

Desarrollo de pginas JSP

Ejemplo: declaracin, saludo.jsp


<%!

Desarrollo de pginas JSP

JSP: Objetos predefinidos


El cdigo java incrustado en JSP tiene acceso a los mismos objetos predefinidos que tenan los servlets Aqu se llaman como sigue:
request response pageContext session application out config
Se puede acceder a ellos directamente desde los scriptlets

Desarrollo de pginas JSP

Acciones JSP
Etiquetas XML que tienen procesamiento asociado

Desarrollo de pginas JSP

<jsp:useBean

Desarrollo de pginas JSP

<jsp:useBean id=

Desarrollo de pginas JSP

Ambitos JSP

Desarrollo de pginas JSP

Directiva taglib
Declara que la pgina usa una librera de tags (acciones)
<%@ taglib uri=http://www.mycorp/supertags prefix=super %> ... Alias definido en web.xml <super:doMagic> ... </super:doMagic>

Identifica la librera por su URI


Syntax

Le asocia un prefijo para usar en el cdigo de la JSP

<%@ taglib ( uri=tagLibraryURI | tagdir=tagDir ) prefix=tagPrefix %>

Bibliotecas de etiquetas personalizadas

Ejemplo de uso de JSTL y EL

Ej: Ligas v.9

Contenidos

Desarrollo de pginas JSP con etiquetas personalizadas

Roles de trabajo de Java EE en aplicaciones Web


Diseadores de web Desarrolladores de componentes web Desarrolladores de componentes de negocio Las etiquetas personalizadas permiten desarrollar por completo una pgina de JSP sin utilizar cdigo Java

Desarrollo de pginas JSP con etiquetas personalizadas

JSP con bibliotecas de etiquetas personalizadas


Ej: Ligas v.9

Con scriplet

Con etiquetas

Desarrollo de pginas JSP con etiquetas personalizadas

Qu es una biblioteca de etiquetas personalizadas

Desarrollo de pginas JSP con etiquetas personalizadas

Etiquetas JSTL

Desarrollo de pginas JSP con etiquetas personalizadas

Acciones bsicas

Desarrollo de pginas JSP con etiquetas personalizadas

Acciones bsicas++

Desarrollo de pginas JSP con etiquetas personalizadas

Procesamiento de XML

Desarrollo de pginas JSP con etiquetas personalizadas

Acciones de formato

Desarrollo de pginas JSP con etiquetas personalizadas

Acciones de formato

Desarrollo de pginas JSP con etiquetas personalizadas

Acceso a base de datos relacional

Desarrollo de pginas JSP con etiquetas personalizadas

Funciones

Desarrollo de pginas JSP con etiquetas personalizadas

Funciones

Contenidos

Desarrollo de aplicaciones web mediante formularios de accin de Struts

Componentes de aplicacin de Struts

Desarrollo de aplicaciones web mediante formularios de accin de Struts

Repaso de los elementos de modelo

Ej: Ligas v.9

Desarrollo de aplicaciones web mediante formularios de accin de Struts

Repaso de los elementos de vista

Desarrollo de aplicaciones web mediante formularios de accin de Struts

Jsp, actions, forwards

Desarrollo de aplicaciones web mediante formularios de accin de Struts

Desarrollo de una clase ActionForm

Un objeto representa al formulario

Desarrollo de aplicaciones web mediante formularios de accin de Struts

Biblioteca de etiquetas html de Struts

Contenidos

Creacin de componentes de presentacin reutilizables

Diseos de pgina complejos

Creacin de componentes de presentacin reutilizables

Maquetacin con tablas

@copyright

Creacin de componentes de presentacin reutilizables

Organizacin de segmentos de presentacin

Creacin de componentes de presentacin reutilizables

Inclusin de segmentos en pginas de JSP


La directiva include

La accin estndar jsp:include

Creacin de componentes de presentacin reutilizables

Uso de la accin estndar jsp:param

Creacin de componentes de presentacin reutilizables

Segmento banner.jsp

Creacin de componentes de presentacin reutilizables

Desarrollo de diseos con Struts Tiles


layoutPage.jsp

Creacin de componentes de presentacin reutilizables

Rediseo con Tiles


index.jsp

thakyou.jsp

Ligas v.x Resumen de versiones


V.0: contenido esttico V.1: lista de ligas dinmica V.2: aadir ligas, formulario esttico V.2.1: form con servlet, lista estaciones en servelt-param V.3: gestin de errores de formulario, doPost y doGet V.3.1: no se pierden datos en formulario errneo V.4: cargar ligas de contexto de aplicacin V.4.1: cargar datos de fichero V.5: capa de servicio V.6: aade Struts V.7: gestin de la sesin V.8: filtro V.9: vista con jsp, tags jsp y formularios Struts

También podría gustarte