Apuntes Java
Apuntes Java
1.1 Objetivo
El término Web proviene del inglés, y significa red o malla, este término ha sido adoptado
para referirse al internet. Una aplicación Web es un conjunto de páginas que funcionan en
internet, estas páginas son las que el usuario ve a través de un navegador de internet (Inter-
net Explorer de Microsoft, Chrome, Mozilla Firefox, etc.) y están codificadas en un lenguaje
especial. Existen varios tipos de páginas Web: HTML, JSPs, XML… En la primera parte de
este curso trabajaremos con las JavaServer Pages (JSPs). Las páginas JSP se ejecutan en una
máquina virtual de Java, el resultado de la ejecución es código HTML listo para correr en el
navegador. Las JSP constituyen la interfaz de la aplicación con el usuario.
Las aplicaciones Web se almacenan en un servidor, el cual es una computadora que se en-
carga de que éstas sean accesibles a través de internet. Como se ilustra en la Figura I-1, una
aplicación Web corre en un servidor bajo el control de un software especial, al cual se le llama
también servidor. Para evitar confusiones es importante aclarar que el software servidor corre
en una computadora servidor.
Figura I-1. Una aplicación web funciona con una computadora-servidor y una
o varias computadoras-cliente conectadas a través de internet
20 DRA. MARÍA DEL CARMEN GÓMEZ FUENTES Y DR. JORGE CERVANTES OJEDA
Uno de los software servidores más ampliamente utilizados es el Apache Tomcat, y es el que
usaremos en este curso, es de distribución libre. GlassFish es otro software servidor que tam-
bién es muy utilizado.
Es muy común que las aplicaciones Web hagan uso de una base de datos ubicada en la com-
putadora-servidor, los manejadores de bases de datos más populares son Oracle y MySQL. En
este curso utilizaremos MySQL, porque es gratuito. El manejador de base de datos permite
que varios clientes compartan la información, éste es uno de los aspectos más útiles de las
aplicaciones web, ya que permite el comercio en línea (tiendas virtuales, reservaciones de ho-
teles, vuelos, etc.) y facilita la organización en las instituciones (solicitudes en línea, sistemas
de inscripción, control de préstamos bibliotecarios, etc.), como se ilustra en la Figura I-2.
Finalmente, al “cerebro” de la aplicación web, se le conoce como la lógica del negocio y ésta
se le puede codificar de diversas formas (C#, PHP, .NET, JavaScript,…) en el presente curso
utilizaremos Java para hacer Servlets y clases Java. Dos de los ambientes de desarrollo integra-
do más utilizados para el desarrollo de aplicaciones web son NetBeans y Eclipse, ya que son
gratuitos. En el curso utilizaremos NetBeans.
1. ¿QUÉ SE NECESITA PARA HACER UNA APLICACIÓN QUE FUNCIONA EN LA RED? ÍNDICE 21
El software servidor y el navegador del cliente se comunican por medio de un protocolo lla-
mado HiperText Transfer Protocol (HTTP). El navegador hace la petición de una página Web
al servidor enviándole un mensaje conocido como petición HTTP (request), la cual incluye el
nombre de un archivo *.html, y el servidor contesta a esta petición con un mensaje conocido
como respuesta HTTP (response).
En el caso de las páginas Web estáticas, el servidor proporciona en la respuesta HTTP el do-
cumento *.html que el navegador solicitó. El usuario que visualiza una página Web estática,
no puede hacer modificaciones en ésta. Cuando el usuario da clic en la liga a otra página, se
envía otra petición HTTP pero ahora con el nombre del archivo de la otra página que se de-
sea visualizar. Otra manera de pedir una página diferente es escribiendo directamente en el
navegador su dirección Web.
En el caso de las páginas web dinámicas, el servidor pasa la petición HTTP generada por el
navegador a una aplicación Web, la cual procesa la información que contiene la petición. La
respuesta que genera la aplicación se envía al servidor, quien contesta al navegador con una
respuesta HTTP, como se ilustra en la Figura I-3. La respuesta que recibe el usuario no es
siempre la misma, sino que depende de la información que éste proporciona, por eso se dice
que la página es dinámica.
Figura I3. El servidor web turna el procesamiento de las páginas web dinámicas a una aplicación web
22 DRA. MARÍA DEL CARMEN GÓMEZ FUENTES Y DR. JORGE CERVANTES OJEDA
Una página JSP (JavaServer Page) es una página HTML a la que se le incrusta código Java. En
el capítulo II se da una introducción al código HTML para los lectores que no están familia-
rizados con éste. El código Java se incrusta entre los siguientes indicadores <% y %>. En el
capítulo III trabajaremos con las JSP.
Un servlet es una clase Java (hija de la clase HttpServlet) y corre en el servidor. Su nombre
se deriva de la palabra applet. Anteriormente se utilizaban los applets, que eran pequeños
programas, escritos en Java, que corrían en el contexto del navegador del cliente, sin embargo,
desde que Microsoft Explorer suspendió su mantenimiento, los servlets substituyeron a los
applets, sólo que los servlets no tienen una interfaz gráfica. Un servlet da servicio a las peti-
ciones de un navegador Web, es decir, recibe la petición, la procesa y devuelve la respuesta
al navegador. Un servlet es una clase Java en la que se puede incrustar código HTML. Como
los servlets están escritos en Java, son tan portables como cualquier aplicación Java, es decir,
pueden funcionar sin necesidad de cambios en diferentes servidores.
A manera de ejemplo, presentamos el código de un servlet muy sencillo, el cual genera como
respuesta una página HTML que despliega un breve mensaje.
El objeto request se usa para leer los datos que están en los formularios que envía el
navegador. El objeto response se usa para especificar códigos y contenidos de la respuesta.
PrintWriter out;
String title = "Ejemplo de un servlet";
out = response.getWriter();
PrintWriter out;
1. ¿QUÉString title
SE NECESITA PARA=HACER
"Ejemplo de un servlet";
UNA APLICACIÓN QUE FUNCIONA EN LA RED? ÍNDICE 23
out = response.getWriter();
Un servlet puede generar su resultado consultando a una base de datos, invocando a otra
aplicación o computando directamente la respuesta. También puede dar formato al resultado
generando una página HTML, y enviar al cliente un código ejecutable.
-- La vista.- Son los módulos SW involucrados en la interfaz con el usuario, por ejem-
plo, las páginas de internet que se despliegan en la computadora del usuario.
-- El controlador.- Es el software que procesa las peticiones del usuario. Decide qué
modulo tendrá el control para que ejecute la siguiente tarea.
-- El modelo.- Contiene el núcleo de la funcionalidad, es decir, ejecuta la “lógica del
negocio”. Se le llama lógica del negocio a la forma en la que se procesa la información
2 para generar los resultados esperados. El modelo se conecta a la base de datos para
guardar y recuperar información.
--
El patrón MVC convierte la aplicación en un sistema modular, lo que facilita su desarrollo y
mantenimiento. En la Figura I-4 se ilustran las tres partes del modelo MCV.
24 DRA. MARÍA DEL CARMEN GÓMEZ FUENTES Y DR. JORGE CERVANTES OJEDA
En las aplicaciones Web más sencillas de este curso, sólo separamos la vista (con páginas JSP)
y el procesamiento de los datos (con servlets). Sin embargo, para aplicaciones Web un poco
más avanzadas utilizamos el patrón MVC. La vista la implementaremos con páginas JSP, el
controlador con servlets y el modelo con clases Java(ver capítulo V).
Al diseñar y codificar los módulos MVC, es importante que se haga una buena división de las
tareas. Por ejemplo, las páginas JSP no deben incluir tareas de procesamiento de datos y los
servlets no deben contener código para la presentación de las páginas. La división de tareas
entre el controlador y el modelo es la más difícil. Mantener una total independencia entre los
módulos es a veces imposible, sin embargo es el objetivo ideal.
1.7 Frameworks
Podemos ver a un framework como una estructura de software que tiene componentes perso-
nalizables e intercambiables y constituye una aplicación genérica incompleta y configurable, a
la que se le añaden las últimas piezas para construir una aplicación concreta.
La mayoría de los frameworks para desarrollo Web implementan el patrón MVC con algunas
variantes. Entre los frameworks más conocidos están:
-- JavaServer Faces
-- Struts
-- Spring Web MVC
En la segunda parte de este libro aprenderemos a hacer aplicaciones Web con JavaServer Faces.
Apache Tomcat es un software que actúa como contenedor de servlets, es decir, recibe las peti-
ciones de las páginas Web y redirecciona estas peticiones a un objeto de clase servlet.
https://netBeans.org/downloads/index.html
Para poder instalar NetBeans es necesario tener previamente instalado el JDK (JavaDevelop-
ment Kit), ya que éste es la plataforma en la que se ejecuta NetBeans.
26 DRA. MARÍA DEL CARMEN GÓMEZ FUENTES Y DR. JORGE CERVANTES OJEDA
En el capítulo III se explica cómo crear una aplicación Web con NetBeans.
1. ¿QUÉ SE NECESITA PARA HACER UNA APLICACIÓN QUE FUNCIONA EN LA RED? ÍNDICE 27
Para iniciar una aplicación Web se selecciona File →New Project→JavaWeb, como se ilustra en
la Figura I-7.
Es muy importante seleccionar correctamente el servidor que tenemos instalado, en este caso
Tomcat, como se ilustra en la Figura I-8.