¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Desarrollo informático
  3. JSP
Extrait - Desarrollo informático Aprenda a diseñar antes de programar
Extractos del libro
Desarrollo informático Aprenda a diseñar antes de programar Volver a la página de compra del libro

JSP - MVC

Presentación

Las JSP permiten introducir código Java en las etiquetas (tags) predefinidas dentro de una página HTML.

Durante la primera llamada de una página JSP, se genera un Servlet, se guarda y se ejecuta. 

Durante las siguientes llamadas de la JSP, directamente es el Servlet el que se ejecuta.

Como un Servlet, una JSP se ejecuta en el contenedor web (es el Servlet generado el que se ejecuta).

Por lo tanto, hay una analogía entre las JSP y los Servlets. Es posible programar toda una aplicación con una técnica u otra, pero ello no es razón para hacerlo.

Primera JSP: proyecto ServletJsp1

1. Proyecto ServletJsp1

El proyecto ServletJsp1 retoma el proyecto Servlet1, pero todo el código HTML del Servlet ServletValidacion se mueve a las JSP.

2. Encadenamiento de los programas y de las pantallas del proyecto Servlet1

El Servlet ServletValidacion delega la visualización de las pantallas de respuesta a las JSP:

  • resultado0.jsp

  • resultado1.jsp

  • resultado2.jsp

images/1_303.png

3. La JSP resultado2.jsp

a. Los tags de las JSP

Una JSP es un programa HTML en el que se insertan tags particulares.

En el ejemplo resultado2.jsp, reconocemos etiquetas JSP de un tag de apertura que comienza por los caracteres <% y un tag de cierre %>.

La versión JSP 2.0 propone etiquetas JSP que respetan el formato XML.

b. resultado2.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>  
  
<% String miHerram = request.getParameter("miHerram");  
String opcionAcceso = request.getParameter("opcionAcceso"); %>  
  
<!DOCTYPE html>  
<html>  
   <head>  
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
       <title>Acceso</title>  
       ...

¿Servlet o JSP?

1. Servlet/JSP: ¿cómo utilizarlos?

JSP y Servlet representan dos maneras de tratar una aplicación web.

  • Un Servlet es una clase Java. Es posible insertar código HTML. Pero esta inserción normalmente es farragosa y hace necesario un conocimiento de HTML.

  • Una JSP es código HTML, que puede contener código Java gracias a etiquetas especializadas. Sin embargo, se recomienda limitar al máximo el código Java.

  • Para el desarrollador, algunas veces es difícil encontrar errores de ejecución en una JSP porque se producen durante la ejecución del Servlet generado.

  • De esta manera, es posible confiar el desarrollo de las páginas HTML a un especialista. Algunas inserciones de tags JSP permiten completar las zonas dinámicas.

Más allá de estas consideraciones prácticas, la elección entre Servlet y JSP es una elección de diseño.

2. Servlet/JSP: una elección de diseño

Se utilizan las JSP únicamente para las visualizaciones de pantalla, limitando el código Java al estricto necesario para mostrar las zonas dinámicas de la pantalla.

Se excluyen de los Servlets todo el código HTML. Los Servlets solo servirán para la recepción de las consultas de los clientes y controlar su ejecución.

íSin HTML en los Servlets! ¡La menor cantidad posible de Java en los JSP!

El modelo MVC (Modelo-Vista-Controlador) en Web

1. Recordatorio: arquitectura MVC para una aplicación cliente pesado

images/2_303.png

En un cliente pesado (SWING por ejemplo) la vista, el controlador y el modelo forman parte de la misma aplicación (solo hay un único main()). El modelo MVC impone una separación entre las clases que componen la vista y aquellas que componen el modelo. Cualquier interacción entre la vista y el modelo pasa por el controlador.

2. Arquitectura MVC para una aplicación web

En una aplicación web, hay al menos dos programas que se comunican: un navegador web (cliente) y una aplicación servidor.

El modelo MVC fija el diseño de la aplicación servidora. Como para el cliente pesado, hay una separación entre las clases que componen la vista y las que forman el modelo. Cualquier interacción entre la vista y el modelo pasa por el controlador.

La vista se muestra en el navegador, pero su código se fabrica en el servidor. Por lo tanto, es necesario que figure el navegador en el esquema, con una flecha al controlador (un Servlet) y una flecha que llega de la vista (JSP).

images/3_303.png

Si se agrupan los dos elementos que intervienen en la vista (JSP y navegador), nos encontramos con el mismo esquema que el del MVC cliente pesado.

3. La aplicación ServletJsp1 respecto al modelo MVC

a. Diagrama de secuencia de la aplicación ServletJsp1

images/Esquema8.png
  • Las JSP juegan el papel de visualización de las pantallas....