jueves, 26 de junio de 2008

Viernes 27 Junio

Intro a JSP:

http://es.wikipedia.org/wiki/Java_Server_Pages

http://es.wikipedia.org/wiki/JSTL


Utilizamos JSP para ejercicio de discografica (repo: eticom-discografica-servlet), que contará con cantantes, discos, canciones. Los objetos serán persistentes con hibernate utilizando como dependencia eticom-hibernate-core. En el arranque de hibernate insertaremos los datos necesarios para probar la aplicación que consistirá en un conjunto de pantallas:
  • listado de cantantes
  • listado de discos de cantante seleccionado
  • listado de canciones de disco seleccionado
HQL-Un SQL orientado a objetos.
Intro a consultas SQL de tipo Hibernate--> Hibernate Query Language (HQL).
Criteria y Expression

Jueves 26 Junio

intro a Hibernate:
  • arranque de Hibernate: SessionFactory
  • anotaciones
eticom-catalogofotos-servlet
  • pantallas fotografos, galerias, fotos a través de acciones e ids

martes, 24 de junio de 2008

Miercoles 25 Junio

repo: eticom-catalogofotos-servlet

Patrón Controlador Frontal:

  • que consiste en utilizar un único punto de entrada a cada aplicación. Concretamente, todas las peticiones que realiza el usuario se controlan mediante un único servlet (solo un servlet en web.xml), que se encarga de redirigir las peticiones a los servicios implicados
  • utilizar este patrón para desarrollar la app web: eticom-catalogofotos-servlet



más info sobre patrones de desarrollo web...
http://groups.google.com/group/eticom-master-java/web/MVC.ppt

lunes, 23 de junio de 2008

viernes, 20 de junio de 2008

Lunes 23 Junio

probar eclipse j2ee en clase, llevar descarga e instalar plugins
probar tomcat6 como servidor alternativo... compilar y empaquetar con maven y con ant enviar a servidor o a través del manager
servlets generando imagenes
un servlet puede devolver contenido de tipo text/html como estamos comprobando o también puede devolver documentos de tipo pdf, word, o de tipo imagen. Con el siguiente ejercicio vamos a devolver una imagen a partir de un servlet que recibe como parametro la imagen que solicita.

De la siguiente forma: http://localhost:8080/visorImagen?imagen=retrato.jpg

Si lo ejecutamos directamente en el navegador comprobaremos que nos devuelve la imagen correspondiente, pero también podemos realizar la petición dentro de una etiqueta html de imagen



De esta forma demostramos que una misma página puede solicitar información de diferentes servlets.

Como mejora a este ejercicio podemos crear un sistema de seguridad consistente en que según el registro de usuario pueda consultar o no ciertas imágenes que se solicitan al anterior servlet. Y aquí hay que tomar la decisión de implementarlo en el mismo servlet o implementarlo en un filtro. Con la primera solución nuestro servlet ya no solo genera imagenes sino que debe conocer la lógica de negocio relacionada con registro... con la segunda solución cada clase tiene una responsabilidad en nuestro programa, siendo ambas reutilizables por otras



servlet url pattern
* ó /chat/*

servlet modelo 2
jsp http://es.wikipedia.org/wiki/Java_Server_Pages

Java Server Pages es una extensión de servlet

JSP puede considerarse como una manera alternativa, y simplificada, de construir servlets. Es por esto que una página puede hacer todo lo que un servlet puede hacer, y viceversa.

El funcionamiento general de la tecnología JSP es que el Servidor de Aplicaciones (en nuestro caso jetty o tomcat son contenedores de servlets y contenedores de jsps) interpreta el código contenido en la página JSP para construir el código Java del servlet a generar. Este servlet será el que genere el documento (típicamente HTML) que se presentará en la pantalla del Navegador del usuario.

variables implicitas, ... ejemplo conexion a datos desde jsp





Hibernate: para conectar a la base de datos necesita crear un objeto "pesado" que luego se puede reutilizar siempre, el objeto en cuestión se llama SessionFactory y contiene toda la información de persistencia: mapeos (anotaciones y sus atributos) y datos de conexion a la base de datos (url conexion, usuario, clave, nombre de base de datos). Con el objeto SessionFactory podemos crear una conexion (que en hibernate se utiliza la palabra session para referirse al tiempo de una conexion a la base de datos) a la base de datos. SessionFactory.getSession(), con lo cual ya podemos realizar comunicaciones con la base de datos (selects, updates, deletes, creates).

La preguntas...
  1. ¿si el objeto a crear es pesado y es reutilizable en qué ambito de una aplicación web lo guardamos? ¿ServletContext, HttpSession, HttpRequest?
  2. ¿dónde, cuándo y cómo lo creamos?

La respuestas...
  1. ?
  2. ?

POE¿cómo se hace un programa utilizando eventos (orientado a eventos...)?
generación de las clases necesarias para que cuando añadamos un nuevo Producto al CarritoCompra se lance un CarritoCompraIncluirEvento y lo escuche un ComprobadorStockCarrito (será del tipo CarritoCompraListener)

POA¿qué se consigue haciendo un programa con eventos?

Separación de aspectos del programa y con ello se consigue modularización, reutilización e independencia

jueves, 19 de junio de 2008

Viernes 20 Junio - Listener en javax.servlet

  • Listeners
  • carrito compra lanza eventos y objetos escuchan los eventos del carrito compra es decir CarritoCompraLanzador CarritoCompraEscuchador CarritoCompraIncluyeProducto
  • Listener patron singleton
  • HttpServlets vs Services ---- Controladores vs Servicios --- lifecycle - rendimiento - IOC - reflection:
    • ¿en una aplicación multiusuario (200-2000) cuantos objetos (incluyendo su navegacion por propiedades) tiene que crear nuestro programa para dar respuesta a estas solicitudes?
    • ¿cómo se puede aumentar el rendimiento o reducir los objetos?
    • ¿cómo podemos crear un programa robusto, es decir cambiar de implementación sin modificar el código....?
Colaboración de servlets con RequestDispatcher
RequestDispatcher disp = request.getRequestDispatcher("/servlet/RecursoInvocado?item1=valor&item2=valor&...");
disp.foward(request, response);

disp.include(request, response);

mas info sobre colaboración de servlets

Jueves 19 Junio - Servlet Lifecycle y Listeners

  • ServletContext, Session, Request diferencias de estado