Вы находитесь на странице: 1из 24

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 WEB-
CONTENT.

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


<web-app ...>
<servlet>
... Argumento en minutos.
</servlet>
<sesion-config>
<session-timeout>15</session-timeout>
<sesion-config>
</web-app>

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.

Вам также может понравиться