- clone() - para clonar los objetos.
- finalize() - últimas operaciones antes de cerrar un objeto.
- toString() - devuelve una cadena de texto cuando se intenta imprimir un objeto.
- equals() - compara los objetos entre sí.
Set coleccion=new HashSet();
coleccion.add(gato1);
coleccion.add(gato2);
Tipos de colecciones: Map, List, Set.
¿Porque existen tres tipos de colecciones?, porque cada uno tiene internamente unos comportamientos diferentes.
Set-> No permite objetos repetidos. De forma transparente mira el método equals(). Recomendable sobrescribir el método equals para así ahorrarnos más código a la hora de introducir objetos en el Set.
List-> Permite duplicados.
Map-> Permite duplicados.
Ejercici0 de servlet, clases y Listas:
El objetivo del ejercicio es la de dominar la herencia, la sobreescritura de los métodos toString() y el equals(), usando como clase base "Disco", tener un servlet que sea un formulario de entrada y un último servlet que es el que guardará la información del formulario en una Lista de tipo Disco y posteriormente se mostrará.
El guión del ejercicio:
- Comenzamos definiendo la clase Disco con las propiedades: titulo, cantante y referencia.
- Seguimos con el formulario de nuevo disco que se enviara a la discoteca..., es decir, creamos un nuevo servlet que pintará el formulario y lo damos de alta en el web.xml para que escuche las peticiones en /disco
- Creamos el servlet discoteca y lo damos de alta en el web.xml
- El servlet discoteca en esta primera fase de desarrollo, lo unico que hace es comprobar que la discoteca (List ) esta en la session y en caso contrario la crea. Posteriormente la pinta en pantalla (aunque por ahora siempre estará vacía)
- En dicho servlet accedemos al objeto session (HttpSession) a través del objeto request.getSession(), obteniendo con este objeto la capacidad de acceder a atributos session.getAttribute("clave") o incluir atributos session.setAttribute("clave", objeto).
- Una vez que esto funciona, modificamos el codigo para que: si recibimos el formulario de /disco entonces creamos un nuevo Disco y lo metemos en la coleccion.
- Sobreescribimos el metodo toString() de la clase Disco para que imprima el nombre y autor del disco
- Limitamos los discos duplicados (implementamos metodo equals y hascode en la clase Disco) para poder utilizar el metodo de la clase List contains: boolean existe=coleccion.contains(object)
Otro Ejercicio del mismo tipo, pero en vez de una Lista son tres.
Esta vez consiste crear tres listados de animales, animales de tres tipos: Jirafas, Panteras y Leones, que mediante un formulario individual para cada uno (es decir, 3 servlets) le envíe la información a uno principal que distinga quién le envía la información y mostrar el contenido de las tres listas.
Los pasos que hay que hacer son:
- Creamos en eclipse un nuevo proyecto web dinamico. Como nombre le indicamos "zoo"
- seleccionamos la pestañita de "servers" dentro de eclipse y boton derecho ->add and remove projects... y le añadimos el recien creado
- Los animales que tendremos que gestionar en el zoo serán: leones, jirafas, panteras. Cada animal tendra un nombre y una edad
- Creamos un servlet que responda a la peticion "/visita" y nos pinte en pantalla la coleccion de leones, de jirafas y de panteras (en tres lineas, una debajo de la otra)
- Creamos un servlet que pinte un formulario para introducir una nueva jirafa en la URL: '/jirafa', con los datos: nombre y edad. Dicho formulario se enviará a '/visita'
- Creamos un servlet que pinte un formulario para introducir una nueva pantera en la URL: '/pantera', con los datos: nombre y edad. Dicho formulario se enviará a '/visita'
- Creamos un servlet que pinte un formulario para introducir un nuevo leon en la URL: '/leon', con los datos: nombre y edad. Dicho formulario se enviará a '/visita'
- Cuando el servlet encargado del URL: '/visita' reciba los parametros del formulario '/jirafa', entonces creará una nueva jirafa y la incluira a la coleccion de jirafas existentes
- Cuando el servlet encargado del URL: '/visita' reciba los parametros del formulario '/pantera', entonces creará una nueva pantera y la incluira a la coleccion de panteras existentes
- Cuando el servlet encargado del URL: '/visita' reciba los parametros del formulario '/leon', entonces creará un nuevo leon y lo incluira a la coleccion de leones existentes
- Modificar el metodo equals de las clases correspondientes (Leon, Jirafa, Pantera) para que al incluirlas a la coleccion no existan duplicados [dos animales se consideran iguales si su nombre y edad es igual*]
- aplicar herencia entre las diferentes clases de animales para eliminar el codigo redundante
No hay comentarios:
Publicar un comentario