Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF...
-
Upload
amada-modesto -
Category
Documents
-
view
18 -
download
0
Transcript of Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF...
![Page 1: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/1.jpg)
Aplicaciones web
![Page 2: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/2.jpg)
Aplicaciones web
…
HTTP
![Page 3: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/3.jpg)
Aplicaciones con páginas estáticas
• Subdirectorio especial: \WEB-INF
• Fichero de configuración (opcional):
\WEB-INF\web.xml
• Ficheros *.html fuera de WEB-INF
• El contenido de WEB-INF no es directamente accesible a través de http
• El contenido fuera de WEB-INF es directamente accesible a través de http
![Page 4: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/4.jpg)
Aplicación con páginas estáticas: Ejemplo
Hello
WEB-INF
web.xml
Hello.html
web
SubDir
Bye.html
URLS: http://.../Hello/Hello.htmlhttp://.../Hello/SubDir/Bye.html
![Page 5: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/5.jpg)
Aplicación con páginas estáticas: Ejemplo, II
• Fichero de configuración web.xml:
<?xml version="1.0" encoding="UTF-8"?><web-app version=“3.0“
xmlns="http://java.sun.com/xml/ns/javaee“xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance“
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"></web-app>
![Page 6: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/6.jpg)
Servidor de aplicaciones
• Administración:
…\glassfish\bin\asadmin
• Arranque: asadmin> start-domain domain1
• También automáticamente desde NetBeans
• Parada: asadmin> stop-domain domain1
• URL: http://localhost:8080
• Entorno web de administración: http://localhost:4848
Usuario: admin, Clave: adminadmin
![Page 7: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/7.jpg)
Acceso a las aplicaciones web
• URLs de acceso a aplicaciones:– Cada aplicación tiene asociada una URL de
acceso, formada por la URL del servidor se-guida de un identificador de la aplicaciónEjemplo: http://localhost:8080/test
• Cada aplicación tiene asociada una o más páginas (o componentes) de inicio del directorio raíz, que se indican en web.xml:
<welcome-file-list><welcome-file>start.html</welcome-file>
</welcome-file-list>
![Page 8: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/8.jpg)
Aplicación con páginas estáticas: Despliegue
• Se despliega desde el entorno de admi-nistración del servidor de aplicaciones– Web applications Deploy
(seleccionar directorio, indicar nombre de la aplicación y ruta de acceso)
• La URL de acceso a una página es la del servidor seguida de la ruta de acceso de la aplicación y la de acceso a la página
• Ej: http://localhost:8080/test/path/pag.html
![Page 9: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/9.jpg)
Despliegue desde NetBeans
• Pulsar con el botón derecho del ratón sobre el proyecto
• Ejecutar “Deploy” o “Run”
• Automáticamente se compila el proyecto y se arranca el servidor si hace falta, se despliega el módulo, se arranca el navegador si hace falta y se hace la petición http correspondiente
![Page 10: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/10.jpg)
Módulos web de presentación: Estructura
• Recursos web– Ficheros de contenidos estáticos
(HTML, imágenes, …)– Componentes (programas
generación dinámica de contenidos)
• Clases de utilidades (BBDD, …)• Programas cliente (applets,
JavaScript, …)• Ficheros de configuración
(XML)
Directorios
/
/WEB-INF
/WEB-INF
/
/WEB-INF
![Page 11: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/11.jpg)
Estructura de módulos webPÚBLICO
PRIVADO
![Page 12: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/12.jpg)
Módulos web de presentación: Formato alternativo
• Un módulo web puede estar formado por un fichero XXX.war que contiene un árbol de directorios, comprimido en formato Zip.
• Se despliega análogamente al caso de un árbol de directorios.
![Page 13: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/13.jpg)
Aplicaciones web: Estructura
• Ficheros XXX.ear que contienen varios módulos web en formato war
• Los módulos web pueden ser de presen-tación o de servicios (programas que re-ciben peticiones de información o de eje-cución de acciones de otro módulo web)
• NetBeans gestiona la estructuración y despliegue de módulos y aplicaciones de manera transparente
![Page 14: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/14.jpg)
Configuración de módulos web
• Asociación de componentes a URLs– Cada componente tiene asociado un alias
y se pueden asociar alias a URLs.Ejemplo: el alias TStart puede corresponder al servlet servlets.TestStart.class o a la página TestStart.jsp y a la URL /TS le puede corresponder el alias TStart.
• Las URLs comienzan obligatoriamente con / y pueden ser patrones con * (como /TS/*).
![Page 15: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/15.jpg)
Configuración de módulos web, II
• Cada aplicación tiene asociada una componente de inicio.– La componente de inicio se especifica
mediante un camino de acceso (URL relativa) que comienza sin barra.
![Page 16: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/16.jpg)
Configuración de módulos web: Ejemplo
• La aplicación se llama Prueba.• La URL del servidor es 150.244.0.0:8080.• El alias Comienzo corresponde al servlet con
clase servlets.Start.• El patrón de URL “/init/*” corresponde al servlet
con alias Comienzo.• La componente de inicio es “init/start.html”.• Al acceder a http://150.244.0.0:8080/Prueba/, el
servidor muestra el contenido generado por el servlet con clase servlets.Start.
![Page 17: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/17.jpg)
URLs
• Son las direcciones utilizadas para acceder a un recurso webhttp://servidor/aplicacion/contexto?param=valor
• Incluyen el protocolo, identificador del servidor (IP o nombre), puerto (opcional), nombre de la aplicación, contexto y parámetros
• Los parámetros se utilizan para enviar información del cliente al servidor
![Page 18: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/18.jpg)
Tipos de peticiones Http
• Peticiones directas desde la barra del navegador.
• Peticiones indirectas a través de un enlace o botón en un formulario en la ventana del navegador.– GET: Inclusión de parámetros en la cabecera.– POST: Inclusión de parámetros en el cuerpo.
También se utiliza para enviar información del cliente al servidor (ficheros, etc)
![Page 19: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/19.jpg)
Tipos de peticiones http, II
• La URL asociada a una petición POST no contiene sus parámetros
• Recomendación de W3C: Utilizar peticiones Post si se va a producir un cambio en el estado de la aplicación.
• Motivación práctica: Si el resultado de la petición depende del contexto, no tiene sentido facilitar el guardar su URL como página preferida.
![Page 20: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/20.jpg)
Peticiones a través de un formulario: Codificación HTML
<FORM
action=“http://localhost:8080/TTTWeb”
method=“post”>
…
</FORM>
• Aspectos relevantes: Qué petición (URL) se hace al pulsar en el botón del formula-rio y cómo se especifica el formulario
![Page 21: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/21.jpg)
Peticiones a través de un formulario: Ejemplo
http://localhost:8080/TTTWeb/?voto=SI
![Page 22: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/22.jpg)
Peticiones a través de un formulario: Codificación HTML, II
<FORM><LABEL for=“si”>SI</LABEL><INPUT type=“radio” id=“si”
name=“voto” value=“SI”/><BR><LABEL for=“no”>NO</LABEL><INPUT type=“radio” id=“no”
name=“voto” VALUE=“NO”/><BR><INPUT type=“submit” value=“Votar”/><INPUT type=“reset” value=“Reiniciar”/>
</FORM>
![Page 23: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/23.jpg)
Peticiones a través de un formulario: Tipos de inputs
– TEXT Campo de texto (una línea)
value: El texto tecleado– PASSWORD Campo: clave
value: El texto tecleado– CHECKBOX Item seleccionable– RADIO Selección de un item en lista– SUBMIT Botón de envío– RESET Botón de reinicio de formulario– FILE Selección de fichero
![Page 24: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/24.jpg)
Peticiones a través de un formulario: Menús y textos
• SELECT (Menú)<SELECT size="4" name="component-select"> <OPTION value=“1_a">Component_1</OPTION> <OPTION value=“1_b">Component_2</OPTION> </SELECT>
• TEXTAREA<TEXTAREA name="thetext" rows="20" cols="80">
First line of initial text. Second line of initial text. </TEXTAREA>
Value: el texto tecleado
![Page 25: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/25.jpg)
Ejercicios
• [STATIC] La URL UUU:8080/NombreYClub?nombre=XXX&club=YYY
contesta con una página que dice
“Hola XXX, Viva el YYY!”
Desarrollar una página HTML estática que permita que el usuario teclee su nombre y elija un club entre una lista determinada y le conteste en los términos anteriores.
![Page 26: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/26.jpg)
Aplicaciones en capas, I
Capacliente
Capaweb
Capanegocio
![Page 27: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/27.jpg)
Frameworks para aplicaciones en capas
• Java Enterprise Edition (Java EE 6)– Multiplataforma– Basado en el lenguaje Java– Extensivo y flexible, pero no simple
• Microsoft .NET– Plataforma Windows– Multilenguaje (C#, VB, C++ CLI, …)– Eficiente y simple, orientado a servicios
![Page 28: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/28.jpg)
Aplicaciones en capas, II
• Capa cliente– Navegador, aplicación o servidor– Accede a un servidor haciendo peticiones– Puede tener un grado alto de interactividad
(interfaz de usuario similar a las aplicaciones stand alone) mediante la utilización de un lenguaje de programación (Java, Javascript, Flash, …) y la conexión con el servidor (Ajax)
![Page 29: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/29.jpg)
Aplicaciones en capas, III
• Capa Web (servidor)– Gestiona la interacción entre los clientes y la
capa de negocio.– Tareas:1. Generación dinámica de contenidos2. Atención a los clientes, devolviéndoles los
resultados enviados por la capa de negocio3. Control del flujo de pantallas o páginas en el cliente4. Mantenimiento del estado de los datos de las
sesiones de usuario5. Gestión de la lógica básica de la aplicación,
manteniendo datos temporalmente en JavaBeans
![Page 30: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/30.jpg)
Aplicaciones en capas, IVTecnologías utilizadas en la capa web
ServletsClases Java que procesan peticiones y construyen respuestas
JSPPlantillas de documentos con instrucciones Java para su generación
JSFEtiquetas y extensiones para simplificar la definición de páginas JSP
Reglas de navegación entre páginas
STLBiblioteca de etiquetas que encapsulan funcionalidad de páginas JSP
JBCObjetos que almacenan datos temporalmente para la aplicación
![Page 31: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/31.jpg)
Arquitectura de la capa web
![Page 32: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/32.jpg)
Integración de componentes web
![Page 33: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/33.jpg)
Aplicaciones en capas, V
• Capa de negocio– Componentes que proporcionan la lógica de
negocio de la aplicación– Tecnologías:
• EJB (Enterprise JavaBeans)• JAX-WS (Java API for XML Web Services)• Entidades de la API de persistencia• Servicios Web (SOAP, …)
![Page 34: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/34.jpg)
Aplicaciones en capas, VI
• Capa de sistemas de información empresarial (EIS)– Servidores de bases de datos– Sistemas de planificación de recursos– Mainframes– …
![Page 35: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/35.jpg)
Aplicaciones en capas, VII Tecnologías utilizadas en la capa EIS
• JDBC (Java DataBase Conectivity)
• API de Persistencia
• Arquitectura de conexión J2EE
• JTA (Java Transaction API)
![Page 36: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/36.jpg)
Otras tecnologías (.NET)
• ASP (Active Server Pages)
• ADO (ActiveX Data Objects)
• SOAP (Servicios Web)
![Page 37: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/37.jpg)
Servidor de aplicaciones, I
• Proporciona los servicios de Java EE• Alberga componentes de distintos tipos
correspondientes a las capas de la aplicación, guardadas en contenedores
• Proporciona servicios a las componentes (atención de solicitudes, seguridad, concurrencia y gestión del ciclo de vida)
• Proporciona acceso a APIs como acceso por nombre, transacciones y correo electrónico
![Page 38: Aplicaciones web. … HTTP Aplicaciones con páginas estáticas Subdirectorio especial: \WEB-INF Fichero de configuración (opcional): \WEB-INF\web.xml Ficheros.](https://reader036.fdocumento.com/reader036/viewer/2022081502/553a69ec550346f0118b4581/html5/thumbnails/38.jpg)
Servidor de aplicaciones, II: Contenedores
• Contenedor web: Gestiona el ciclo de vida de las componentes (Servlets, JSPs, …) y su acceso al contexto (sesión, …)
• Contenedor de clientes de la aplica-ción: Interfaz con aplicaciones cliente
• Contenedor de EJB: Interfaz con Enterprise beans
• Su objetivo es optimizar el rendimiento. Juegan el papel de caches sofisticadas