JTagua

Inicio » Posts tagged 'JSP/SERVLETS'

Tag Archives: JSP/SERVLETS

Anuncios

Tutorial de JSP (1) – Introducción y Funcionamiento.

El estándar HTML HyperText Markup Language (Lenguaje de Marcado de Hipertexto) resuelve el envío de información desde un servidor a un cliente (Firefox, por ejemplo) mediante páginas estáticas. Sin embargo, a través de este código, es imposible suministrar páginas dinámicas, es decir, aquellas que cambian su contenido al cambiar simplemente el tiempo, o cambian con la variación de los datos de una base de datos, o a petición/interacción con el solicitante, etc.

Un ejemplo de página dinámica sería la página web de la bolsa de Madrid. En la dirección http://www.bolsamadrid.es/esp/contenido.asp?menu=0&enlace=/esp/bolsamadrid/mvalores/organiza/organiza.htm , la bolsa de Madrid, nos informa cada cinco minutos de la situación de los valores del IBEX-35. Esta información, entre otras, contiene la cotización “instantánea” de cada uno de los valores de los 35 valores que forman el índice. También del valor máximo y mínimo de la cotización dentro del periodo comprendido entre la hora de apertura y el momento de la consulta. Es obvio, que esta página web, o mejor, esta página HTML tal como le llega al cliente o peticionario, o sea, a cualquiera de nosotros, no puede proceder de la mera escritura manual de la página cada cinco minutos, esto sería imposible de realizar por un equipo de codificadores. Se requiere pues, de uno o mas procedimientos que permita de forma automática y haciendo uso de una base de datos generar, cada cinco minutos, la página que nos envían con los datos actualizados.

Otro ejemplo podría ser la cesta de la compra de Carrefour, si accedemos a la págima https://www.carrefouronline.carrefour.es/noalimentacion/login_tecnologia.jsp?origen=misDatos , podemos ver que la página que nos ha enviado el servidor de Carrefour nos solicita cierta identificarnos, en el caso de que ya estemos dados de alta, o en su defecto, registrarnos (darnos de alta) en el servicio online de tiendas. Es obvio que esta tarea requiere de algo mas que HTML, requiere de un lenguaje de script que como en el caso anterior, tenga cierta inteligencia además de una base de datos contra la que confirmar, por ejemplo, que SI somos clientes en la tienda. Por supuesto, esta inteligencia require igualmente que si selecciono la sección Informática, me devuelvan una página HTML, construida expresamente, con los artículos de esta sección y que además contenga cada uno de los artículos que “hoy” están en promoción, etc… Parece evidente que estas páginas no existen en forma estática en el servidor a la espera de ser solicitadas, todo lo contrario, se construyen “bajo demanda” a través de mi petición…

Otro ejemplo de página dinámica podría ser esta otra,  http://es2.php.net/manual/es/language.variables.php Esta página muestra cierta página de la documentación en español del lenguaje PHP, mas concretamente, el concepto, tipos y usos de las variables en PHP. Aunque esta parte de la página podría ser siempre fija, no así la parte que solicita el idioma, ni tampoco por razones obvias, las notas y comentarios que introducen los usuarios. La petición de un idioma u otro requiere de cierta inteligencia, aunque sea poca, y es, seleccionar el texto explicativo en el idioma seleccionado del mencionado contenido. Las notas obviamente, pueden cambiar con el tiempo al incrementarse, y requiere con toda certeza de una base de datos y por tanto de la interacción con ella…

Las tres páginas anteriores cuando se solicitan por un cliente o navegador, son procesadas en el servidor que nos atiende, y éste sencillamente construye la página HTML que devolverá en base a un programa o script al que se le denomina script de servidor escrito en un lenguaje especial denominado lenguaje de script de servidor (se llama así para distinguirlo del lenguaje de script de cliente, por ejemplo javascript, que se ejecuta en el navegador) . Ese script está escrito en cualquiera de los siguientes lenguajes: en asp (Bolsa de Madrid), en jsp (Cesta de la compra de Carrefour) o en php (Página principal PHP).

Se invita al lector a averiguar a la naturaleza de la asociación…

(más…)

Anuncios

Servlet 06: Bolsa de Madrid.

La bolsa de Madrid ha dedicido incorporar a su sitio web información numérica y gráfica de los valores medios mensuales de determinados valores asociados al IBEX-35 ( Información bursátil de 35 valores del mercado). Para resolver este problema dispone de una base de datos en formato MySQL denominada bolsamadrid2009, esta base de datos tiene una tabla llamada datos2009 con la siguiente descripción:

Image25

Todos los campos son DOUBLE, y salvo los campos día, mes y año que son enteros, los demás deben manejarse con dos decimales.

Image26

La tabla contiene 206 registros similares a los anteriores, y se corresponden a los valores numéricos dia a día (intradía) desde el 2 de Enero de 2009 al 18 de Noviembre de 2009 correspondientes a los días en los que la Bolsa de Madrid ha operado. (Se ha excluido intencionadamente el mes de Febrero).Con estos datos y en la idea de proporcionar a sus visitantes una información resumida tanto numérica como gráfica, se debe diseñar una página jsp tal como la que se muestra mas abajo, y en la que puede verse dos botones radiales que operan conjuntamente denominados “Numérico” (previamente seleccionado) y “Gráfico”. Estos dos botones presentan una primera opción al visitante. En el supuesto caso de que el visitante seleccione el botón Gráfico, operará otro grupo de botones radiales denominados “Sectores” (previamente seleccionado) y “Múltiples barras verticales”.

Image27

Si el usuario selecciona “Numérico” aparecerá

Image28

Si ahora el usuario quisiera ver en delalle un mes cualquiera, por ejemplo el mes de Marzo y selecciona en “detalle” en la fila del mes de Junio y aparecerá:

Image29

Desde aquí podrá volver a la pantalla anterior haciendo “Volver”.

Si por el contrario el usuario pulsa en el botón radial de la pantalla inicial “Grafico”, aparecerá dependiendo de los botones “Sectores” o “Barras Verticales Múltiples”.

Image30

 o

Image31

Se pide:

  1. Resolver el problema en los términos planteados haciendo uso del Modelo Vista Controlador.

  2. Implementar un juego de cookies que recuerde de una vez a otra, las selecciones realizadas por el usuario.

Servlet 01: Autentificación.

Se desea construir una aplicación cuyo objetivo fundamental es la autentificación de un cliente a través de los campos usuario y password, provenientes de un formulario. Se dispone, para dicha autentificación, de una base de datos en MySQL llamada db_user, que contiene una tabla llamada usuarios con dos campos o columnas alfanuméricas denominadas usuario y password.

Para resolver el problema se hace uso de una página index.jsp, que cuando se llama inicialmente produce la siguiente salida:

Image12

Cuando el usuario introduce un Nombre y un Password distintos ambos de nulo o blanco, un servlet con ayuda de un javabean localizan un registro en la tabla coincidente con los valores entrados, y por ello, presentan la siguiente pantalla generada con una nueva página jsp de bienvenida:

Image14

En caso contrario, es decir, cuando no existe una coincidencia exacta de la información entrada en el formulario con la que aparece en la base de datos, el propio servlet tendrá que generar la siguiente salida:

Image16

Este mensaje se presentará durante 5 segundos, transcurridos los cuales si el usuario no pulsa Volver, el servlet devolverá el control de la aplicación a la página de inicio o login.

Si en el formulario de entrada, los dos o uno cualquiera de los campos es nulo o blanco, el servlet presentará la información:

Image18

Este mensaje se presentará durante 5 segundos, transcurridos los cuales si el usuario no pulsa Volver, el servlet devolverá el control de la aplicación a la página de inicio o login.

 Se pide:

  1. Diseñar en MySQL e implementar la base de datos con las tablas y campos necesarios que permitan resolver el problema.

  2. Diseñar las páginas jsp de inicio y bienvenida, el servlet de control que se encargue de la navegación y el Javabean que se encarguen de la entrada de datos, la conexión a la base de datos y aquellas otras operaciones necesarias con dicha base de datos. Es decir, se pretende que se aplique el Modelo Vista Controlador.

 

Servlet 04: Detalle Fármacos.

PROBLEMA PROPUESTO.

Se desea incorporar a una aplicación web un generador de informes con los datos en forma tabular y en forma gráfica a través de diagramas de barras verticales de los consumidores y consumidoras de los distintos tipos de medicamentos por sexo y por segmento de edad para un año dado.

 Para resolver el problema anterior, se ha diseñado una primera página index.jsp tal como la que se muestra mas abajo,

Image7

Esta interfaz contiene:

  •  Dos cajas de selección, sexo y tramo de edad.
    • Sexo: En esta caja sólo existen dos valores, Hombres (valor por defecto) y Mujeres.

    • Tramos de edad: En esta caja existen 5 opciones, De 0 a 15 años, De 16 a 24 años, De 25 a 44 años (valor por defecto), De 45 a 64 años y Mayores de 65 años.

  • Un botón para someter el formulario a un servlet, y éste a su vez controlará una clase que le sirva de modelo (MVC) para controlar la apertura, accesos y cierre de la base de datos.

El funcionamiento de la interfaz es el siguiente,

 Primera parte: Esta función se ejecutará tan pronto se seleccione el botón “Someter”, como es obvio el servlet que recibe esta acción tendrá en consideración cualquiera de las dos

selecciones: Sexo y tramo de edad. Y así por ejemplo, si se selecciona Mujeres de 16 a 24 años, aparecerá;

Image8

Donde puede verse que que los datos se corresponden a lo solicitado: Número (en miles) de Hombres de 25 a 44 años que tomaron los tipos de farmacos: Anticatarrales, Analgésicos, Antipiréticos, Reconstituyentes, Lasantes, Antibióticos, Tranquilizantes, Alergia, Reuma, Corazón, Tensión arterial, Estómago, Antidepresivos, Anticonceptivos, Menopausia, Colesterol y Antidiabéticos. (Este informe es el mismo que para Hombres, aunque obviamente con distintos datos). Como es natural, con las dos selecciones (sexo y tramo de edad) existen diez posibilidades, cinco para cada sexo.

 Segunda Parte: Si en la pantalla anterior se selecciona “Detalle” aparecerá el número de Hombres/Mujeres (en este caso Hombres) que consumieron el tipo de fármaco dependiendo de la línea pulsada por tramos de eedad. Esto es:

Image9

Como vemos tenemos una tabla del número de miles de hombres que tomaron farmacos (Lasantes) por grupos de edad.

Vemos igualmente un enlace para volver (Inicio) y otro para ir a la tercera parte del problema.

 Tercera Parte: Si en la pantalla anterior se selecciona “Gráfico” aparecerá el gráfico de la tabla anterior en un diagrama de columnas. Esto es:

Image10

La base de datos del problema se llama farmacos (MySQL), y coincide con la del problema propuesto anterior.

Tenga presente que los informes del INE (Instituto Nacional de Estadística) referido a este estudio jamás ha cambiado los 17 tipos de fármacos, así como los tramos de edad desde que está entregando dicha información. Esto significa que existe una posible simplificación de programación, que aunque menos elegante, es igualmente operativa y es considerar un array interno tanto los tramos como los farmacos.

Notas:

Se entrega para resolver el problema,

 

  • Imágenes farmacia.jpg, infgrafico.jpg, inftabular.jpg
  • Script backup necesario denominado Backup_Farmacos.sql necesario para montar la base de datos del problema
  • Componentes de la librería gráfica JfreeChart (jcommon-1.0.15.jar y jfreechart-1.0.12.jar)

 

SE REQUIERE OBLIGATORIAMENTE RESOLVER EL PROBLEMA DE ACUERDO AL MODELO VISTA CONTROLADOR.(MVC)

Mi primera página Web dinámica con JSP.

Vamos a dar los primeros pasos con Netbeans y  JSP, para ello vamos a producir una sencilla página JSP que produzca el resultado siguiente en el cliente o navegador (Firefox), después de ser procesada por el servidor, en este caso localhost.

Como parece obvio, se requiere que una vez presentada la página con la fecha y hora correctas, si se “recarga” la página cambie dicha  información convenientemente, si procede … Este es el concepto más simple de página web dinámica, aquella que su información cambia con el tiempo…

RESPUESTA:

(más…)

Tutorial de JSP (6) – Declaraciones.

Las declaraciones de variables o métodos se hacen en JSP en la forma

<%! declaración de variable o método; %>

Note el signo (!) de admiración que acompaña justo detrás del signo porcentaje (%), allí donde comienza del código JSP.

Estas variables o métodos así definidos serán globales y por tanto accesibles desde cualquier lugar de la página JSP. Hay que tener en cuenta que el servidor a través del motor JSP transforma la página JSP en un servlet, y éste es usado por múltiples peticiones, lo que provoca que este tipo de variables conserven su valor entre sucesivas llamadas o ejecuciones. Las declaraciones se ejecutan una única vez, en la primera llamada al servlet equivalente.

En el caso de una declación múltiple,

<%! variable1; [variable2;] … %>

También puede inicializarse las variables en el momento de la declaración, como por ejemplo:

<%! int contador = 0; %>

Los ocho tipos de datos primitivos incluidos en el lenguaje de programación Java que pueden declararse para una variable son: byte, short, int, long, float, double, boolean y char.

(Ver http://www.codexion.com/tutorialesjava/java/nutsandbolts/datatypes.html ).

También puede usarse esta otra sintaxis

(más…)

Tutorial de JSP (5) – Expresiones.

En JSP se utilizan las expresiones para insertar valores, obtenidos con Java, directamente a la salida que se envía al cliente o solicitante.

Tiene dos sintaxis:

<%= expresión Java %>

(Note el signo igual (=) que acompaña justo detrás del inicio de código JSP y asegúrese que dicho signo acompaña al de porcentaje (%)).

Existe otra sintaxis que es la siguiente

(más…)

Tutorial de JSP (2) – Comentarios.

Cuando hablamos de comentarios en JSP tenemos que considerar básicamente dos circunstancias, a saber:

1) Comentarios que aparecen como etiquetas HTML en un archivo jsp y que recibe el cliente o peticionario de la página, esto es:

<!– Comentario HTML (Este comentario sí se pasa al cliente) –>

esta instrucción al ser una etiqueta/marca HTML se transmitirá directamente a la página HTML de salida generada por el servlet asociado al JSP para enviarla al cliente solicitante. Esta instrucción es transparente para el Motor JSP.

2) Comentarios escritos en Java entre los identificadores <% y %> que NO se enviarán al cliente solicitante de la página, sólo aparecen en la propia página JSP y en su servlet asociado.

<% // Comentario en Java de una sóla línea  %>

o este otro

<%    /* Comentario en Java de una línea y
otra línea,

y otra línea, o muchas líneas */%>

(más…)