sábado, 24 de enero de 2009

Octavo día: Recopilación

Inicio: Repaso
Como siempre, hicimos un repaso del día anterior.
Recordamos el uso de un filtro, la de filtrar las peticiones de los usuarios, las intercepta y dependiendo de lo que queramos hará una cosa u otra con las peticiones.

Expansión del ejercicio del contador:
Crearemos una nueva clase llamada "FiltroSeguridad", en la misma ventana para crear una clase (a pelo) le diremos que implemente una interfaz de tipo "Filter" que importa el paquete "javax.servlet.Filter".
La clase HttpServletRequest es una clase hija de ServletRequest y lo mismo con el de Response. Decimos esto porque necesitaremos manejar atributos de sesión que ServletRequest no puede hacer mientras que su clase hija si, asi que creamos un objeto de tipo HttpServletRequest haciendo un casting a ServletRequest.
Creamos un repartidor de solicitudes (RequestDispatcher) y le decimos que nos de la direcci
ón a la que queremos enviar y que rediriga al usuario a esa dirección. En este caso sería si un usuario no está registrado, que lo redireccione a la página de registro.
Código:
RequestDispatcher dispatcher= request.getRequestDispatcher("/registro");
dispatcher.forward(servletRequest, servletResponse);

Por supuesto, se me olvidó comentar, que seguiremos usando el filtro que ya hicimos ayer que imprima la cabecera y el pie de la página web.

Ejercicio sobre catálogo de productos:
Terminado el contador hicimos un ejercicio para poner en práctica lo aprendido.
El ejercicio consiste en hacer un catálogo de productos, manejando un listener, 2 servlet y una clase.
Un servlet escuchara la url /catalogo que expondrá un listado de productos (sólo el nombre) a modo de enlace.
  • Los productos se mostrarán gracias a un "List" que está guardada en una variable de aplicación, que creamos en un Listener de aplicación.
    Al mostrar los productos también debemos generar unos enlaces para cada uno, añadiendo ?id=x al enlace, para ello tendremos que hacer un bucle "for" recorriendo todos los elementos del List. for(Productos p:listaProductos){ p.id; etc }
  • El otro servlet recojerá la petición /detalle más el id que le pasamos por parámetro y buscando en el list accederemos a las propiedades del producto y las mostramos.
Una vez hecho esto rizamos el rizo: crearemos un filtro que detecte si el usuario está "registrado" y si no lo está que le redirija a una página de registro.

No hay comentarios:

Publicar un comentario