MVC

Modelo 1 Se usaban Servlets, JSP y custom Tags, pero sin utilizar una estructura bien definida. Modelo Vista Controla

Views 285 Downloads 8 File size 432KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Modelo 1

Se usaban Servlets, JSP y custom Tags, pero sin utilizar una estructura bien definida.

Modelo Vista Controlador (modelo 2) Vista: Vista Son las pantallas que interaccionan con el usuario (la interfaz del usuario) (html y jsp). Todo lo que tenga que ver con la vista se almacena en la carpeta WEBCONTENT. Controlador: Controlador Recibe las peticiones de la vista y se la manda al modelo (servlets). Modelo: Modelo Es la parte que se comunica con el servidor (consulta la base de datos, manda un correo, etc.)Son ficheros Java o EJB. En él, no debe haber ninguna referencia al protocolo http, ni request, ni response, ni session, etc.

Cuando un proyecto comienza a crecer...

El modelo se almacena en un proyecto java común, y la vista en un proyecto web.

Saludar con MVC entrada.jsp

ControllerServlet.java

Servicio.java

salida.jsp

Ejercicio Hacer una calculadora siguiendo el patrón MVC. Si el resultado es mayor que 1000, en controlador redirigirá a una página de error.

Ejercicio - Lista de invitados Hacer una página web para una lista de invitados con 4 secciones. Una para consultar los invitados, otra para dar de alta un nuevo invitado, otra para darlo de baja y otra modificarlo. La tabla que usaremos tendrá un solo campo nombre (varchar).

Librería

Hospital

Ejercicio futbol

Ejercicio listado libros I

Ejercicio listado libros II

Ejercicio listado libros III

Ejercicio listado libros IV

Sessión

Usar variables de sesión es más rápido, pero cuesta memoria RAM. Usar la base de datos es más lento pero no consume RAM.

Recuperar y guardar un ArrayList en la sesión

ArrayList al = (ArrayList) session.getAttribute("palabras"); if(al==null){ al = new ArrayList(); } al.add(valorRecuperadoDelFormulario); session.setAttribute("palabras", al);

Ejercicio Hacer un formulario que permita añadir palabras a un ArrayList. Dicho ArrayList será almacenado en la sesión. Mediante el botón "verRegistrosSesion" podremos ver el contenido del ArrayList.

Para imprimir, desde un servlet el contenido de un ArrayList almacenado en la sesión: response.getWriter().print(nombreArrayList);

Matar una sesión Configurando un timeout en el web.xml

...

15

Argumento en minutos.

Asignando un timeout a una sesión específica. session.setMaxInactiveInterval(60*20); Argumento en segundos (en este caso,) 20 minutos

Ejercicio Hacer un proyecto web nuevo en el que a través de un formulario se vayan sumando números. En un campo de tipo input aparecerá la suma de los dos números introducidos y en otro campo aparecerá la suma de todos los números introducidos desde el comienzo de la sesión. Para ello, un formulario html enviará la información a un controlador servlet que a su vez invocará dos métodos estáticos de una clase java : sumarNumerosSession(double n1, double n2, doublesumaTotalAlmacenadaEnSesion); sumarNumeros(n1, n2) El resultado de estas operaciones será devuelto a la página de inicio index.jsp. El botón limpiar mata la sesión. Esto será procesado por el contralador servlet. Si la suma total almacenada en la sesión excede 1000, seremos redirigidos a una página de error. Esto será procesado por el controlador servlet.

Ejercicio librería Repetir el ejercicio de la librería pero sin usar la base de datos, sólo utilizando variables de sesión.

Ejercicio Login

Listener

Al crearlo habrá que marcar la check lifecycle.

Serialización

Consiste en convertir un objeto en una sucesión de bits.

Context Hay un solo Context por cada aplicación web que hay en el servidor. Lo que es propio de cada usuario va en sesión. Lo que es común a todos va en Context. En un carrito de compra, el carrito de cada usuario se almacenaría en una variable sesión, mientras que la lista de precios estaría en una variable Context.

Ejercicio Hacer un jsp con dos campos, n1 y n2. Al pulsar en el botón sumar, iremos a un controlador que procesará el total de la suma, el total de la sesión y el total del contexto. Con un listener, guardaré la información de las sumas en un archivo de texto cuando baje el servidor. Al subir el servidor se recupera la información del archivo de texto. Los totales se almacenan en instancias de un bean. Antes de levantar la aplicación la primera vez serializamos un cero en el archivo que luego leeremos. Inicializar las variables de sesión y contexto usando listeners.