Escolar Documentos
Profissional Documentos
Cultura Documentos
Una clase Java se compone de varios elementos que permitirn crear objetos e
interactuar entre los mismos.
Los elementos ms bsicos son:
Nombre de la Clase
Atributos
Constructores
Mtodos
Una clase ser nuestra plantilla a partir de la cual vamos a crear objetos. Para
crear nuestra plantilla vamos a utilizar la sintaxis mostrada en la figura.
Ejemplos de modificadores vlidos para declarar una clase son: public, abstract y
final.
El asterisco utilizado en la sintaxis significa que puede repetirse varias veces, por
ejemplo podemos declarar muchos atributos y/o muchos mtodos en nuestras
clases.
El nombre de la clase puede ser cualquier identificador vlido, normalmente este
nombre es un sustantivo y se recomienda respetar la nomenclatura de altas y
bajas, esto es, si tenemos el nombre de la clase MiClase, cada palabra, en este
caso tiene dos palabras Mi y Clase, por cada palabra su primer letra debe de
estar en mayscula.
Posteriormente, como parte de nuestra clase, podemos agregar los atributos,
constructores y mtodos. Lo que se encuentra dentro de estas llaves se conoce
como el cuerpo de la clase.
10
11
12
Para crear una clase que herede las caractersticas de una clase padre (super
clase) basta con agregar la palabra extends e indicar el nombre de la clase
padre.
Una clase en Java nicamente puede heredar de una sola clase, a este
concepto se le conoce como herencia simple.
Para solventar de alguna manera la herencia simple, Java, introduce el concepto
de Interfaces, las cuales estudiaremos ms adelante.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Esta es una pequea gua, para saber las diferencias entre una clase abstracta y
una interface.
Una clase abstracta se utiliza para encapsular funcionalidades comunes entre
las clases, es decir caractersticas. Para hacer uso de una clase abstracta
debemos utilizar la palabra extends e indicar la clase abstracta de la cual
queremos heredar.
Por otro lado, una interface define comportamiento relacionado que puede tomar
como propio cualquier clase. Para hacer uso de una interface debemos utilizar
la palabra implements e indicar la interface que queremos implementar.
Como recomendacin, las clases abstractas deben utilizarse principalmente para
objetos estrechamente relacionados, mientras que las interfaces son ms
adecuadas para proporcionar funcionalidad comn a clases no relacionadas.
29
30
31
32
33
34
35
36
Una patrn de diseo es una gua, que puede involucrar varias clases y que a su
vez nos permite resolver un problema que se presenta de manera repetitiva.
Cuando hablamos de las capas de una arquitectura JEE, cada capa puede tener
varios patrones de diseo como podemos observar en la figura.
En la capa de presentacin podemos observar el patrn MVC (Modelo Vista
Controlador), y su objetivo es dividir las responsabilidades en estos 3 rubros. El
patrn DTO (Data Transfer Object) representa un objeto del dominio del
problema. Este patrn aparece en las 3 capas debido a que se utiliza para
transferir una entidad o una lista de entidades de cierto tipo entre las distintas
capas de la aplicacin.
En la capa de Servicio o Negocio, tenemos el patrn Business Delegate el cual
se encarga de los detalles en la llamada a algn mtodo de servicio. A su vez
tenemos el patrn Service Locator, el cual es utilizado por el patrn Business
Delegate para localizar los servicios cuando se utiliza el directorio Java JNDI.
En la capa de datos tenemos el patrn DAO, el cual se encarga de extraer y
almacenar informacin en la base de datos, utilizando los objetos DTO y/o de
entidad.
Existe un catlogo extenso de patrones de diseo para Java el cual se puede
consultar en: http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
37
38
39
40
Un
Permite
Servlet se utiliza como una clase que controla el flujo de una aplicacin Web
(Controlador) en una arquitectura MVC (Model View - Controller).
41
Los JavaServer Pages (JSPs) son componentes del lado del servidor, especializados en
manejar cdigo HTML, e incrustar cdigo Java por medio de etiquetas (tags).
Los JSPs son utilizados como componentes de presentacin, es decir, para mostrar la
informacin obtenida o procesada por los Servlets.
Al compilarse un JSP se crea un Servlet de manera automtica. Por ello el ciclo de vida
de un JSP es muy similar al de un Servlet.
Un JSP se utiliza como un componente de presentacin (Vista) en una arquitectura
MVC (Model View - Controller).
42
En total son 8 los mtodos soportados por el protocolo HTTP. Los cuales son
Options, Get, Head, Post, Put, Delete, Trace y Connect.
Los mtodos ms utilizados son el GET y POST.
43
44
45
El alcance de una variable en una aplicacin Web tiene que ver con la duracin
de informacin en el servidor Web. Como podemos observar en la figura el
alcance de page es el de menor duracin, hasta llegar al alcance de nivel
aplicacin.
El servidor web tiene objetos que permiten administrar cada uno de los alcances
mencionados. Por ejemplo, si queremos agregar una variable llamada nombre al
alcance de request, tenemos que escribir: request.setAttribute( nombre ), y si
queremos
recuperar
el
valor
de
dicha
variable
escribimos:
request.getAttribute("nombre");
Vamos a explicar cada uno de los alcances disponibles en nuestro servidor Web:
page: Este alcance nicamente existe en los JSPs, no en los Servlets. Si se
agregan variables en este alcance, estarn disponibles nicamente durante la
traduccin del JSP (translation unit).
request: Este alcance, y los que vienen a continuacin estn disponibles tanto
para los JSPs como para los Servlets. El alcance de request mantendr la
informacin almacenada durante una peticin, es decir, desde que se recibe la
solicitud de un recurso hasta que se enva la respuesta al cliente.
session: Este alcance permite almacenar informacin durante un tiempo
determinado o el tiempo que la sesin del usuario est activa.
application: Este alcance permite almacenar informacin durante todo el tiempo
que est arriba la aplicacin Web.
46
47
JSTL significa Java Server Pages Standard Tag Library. Esta librera extiende la
funcionalidad bsica de los tags de los JSPs.
JSTL maneja las siguientes libreras y cada librera contiene un conjunto de
etiquetas o tags:
core: Nos va a permitir leer y manipular datos as como iterar y agregar
condiciones y otras funcionalidades bsicas.
xml: Permite la manipulacin y transformacin de documentos XML.
sql: Tiene tags que nos van a permitir tanto ejecutar consultas a una base de
datos, as como crear conexiones a las mismas.
fmt: Permite dar formato a las cadenas que estemos manipulando, para
convertirlas por ejemplo de cadena a nmero o fecha, incluso esta librera nos
permite apoyarnos de los conceptos como es internacionalizacin o conocido en
ingls como (Locale).
48
Para poder utilizar las libreras de JSTL en nuestra aplicacin web, debemos
agregar el .jar de standar y el .jar de jstl a nuestro classpath.
Se deben de agregar dos jars debido a que uno es la especificacin en este caso
el .jar de standar, y otro es la implementacin en este caso el jar de jstl.
Para utilizar la librera seleccionada, debemos utilizar la notacin de taglib de
los JSPs. El atributo uri http://java.sun.com/jstl/core no significa que descargue
algo de internet, si no que simplemente nos va a resolver dentro de los jars que
ya tenemos en nuestra aplicacin web, posteriormente indicamos un prefijo, que
ser el que nos permita utilizar los tags como se muestra a continuacin:
<c:out value=${persona.nombre}>
<c:forEach var=persona items=${personas}>
//Elementos a iterar
</c:forEach>
49
50
Existe un API de los Servlets utiliza varios mtodos para administrar el concepto
de sesiones.
De primera instancia es necesario utilizar el objeto HttpServletRequest para
obtener el objeto que administra la sesin, a travs del mtodo
requet.getSession().
Una vez que tenemos el objeto de sesin, podemos agregar y recuperar
informacin de la misma, utilizando los mtodos sesion.setAttribute() y
session.getAttribute().
Para eliminar un atributo de la sesin utilizamos el mtodo
sesion.removeAttribute() y para terminar la sesin utilizamos el mtodo
sesion.invalidate(). Este ltimo mtodo tambin eliminar cualquier atributo que
hayamos agregado previamente por medio del mtodo setAttribute.
51
52
El patrn de diseo MVC nos permite integrar a los Servlets, JSPs y a los
JavaBeans en un solo modelo para poder interactuar y as crear aplicaciones
web robustas, flexibles y fciles de mantener.
Los Servlets estn enfocados en controlar el flujo de la peticin HTTP.
Los JSPs estn enfocados en desplegar la informacin de la aplicacin Web.
La informacin que se comparte entre los componentes (Servlets y JSPs) suele
manejarse con JavaBeans.
Los servlets procesan las peticiones Http (Ej. Un Formulario Http) as como
tambin instancian los JavaBeans (Modelo) para almacenar la informacin y
finalmente redirecciona al JSP respectivo.
Los JSPs estn enfocados nicamente en desplegar la informacin de la
aplicacin WEB. La informacin es proveda por medio de los Servlets, utilizando
alguno de los alcances (request, session o application) para compartir
informacin con los JSPs. La informacin de la aplicacin se comparte a travs
de JavaBeans.
53
54
Podemos observar los pasos necesarios para completar el patrn de diseo MVC.
a) El servlet controlador procesa la peticin HTTP del cliente.
b) El servlet controlador ejecuta la lgica de negocio de la aplicacin.
c) El Servlet controlador, comparte los JavaBean con la informacin de la aplicacin en
algn alcance como request, session o application.
d) El Servlet controlador redirecciona la peticin al JSP que va a desplegar la
informacin (JavaBeans) compartida en cierto alcance.
e) El JSP despliega la informacin compartida por el Servlet Controlador y al terminarse
de procesar la peticin se enva HTML al cliente.
55