Este documento discute cómo construir aplicaciones web combinando diferentes tecnologías como servlets, JSP y JavaBeans. Presenta dos arquitecturas principales: una centrada en páginas que coloca la lógica en las páginas JSP, y otra basada en MVC que separa la lógica, la vista y el controlador, asignando servlets al controlador, JSP a la vista y JavaBeans al modelo. Esta segunda arquitectura es más escalable y modular.
Una breve introducción a la plataforma Java EE como primera parte, y a continuación una descripción de los conceptos básicos de computación en la nube, explorando términos como IaaS, SaaS y PaaS y su relación con Java EE.
Una breve introducción a la plataforma Java EE como primera parte, y a continuación una descripción de los conceptos básicos de computación en la nube, explorando términos como IaaS, SaaS y PaaS y su relación con Java EE.
JBossAS: Desarrollo con Java Server FacesAitor Acedo
JBossAS: Desarrollo con Java Server Faces es un curso en español para introducir la tecnología JSF en el desarrollo de interfaces en aplicaciones web y realizar despliegues en el servidor JBoss AS 4.0.5
HISTORIA DEL JDBC
JDBC existe desde 1996, y fue incluido desde la versión 1.1 de Java Development Kit por JavaSoft, aunque también se hizo disponible para usarse con JDK 1.02. El problema de usar JDBC con el JDK 1.02 es que los usuarios comunes tenían que agregar a su maquina virtual de Java las clases que implementan JDBC, lo cual era muy engorroso y difícil. Es por esto que desde la versión de JDK 1.1, JDBC viene incluido como el paquete java.sql.
Java en un principio era visto como un lenguaje para poner animaciones en Internet, la información que presentaba no era persistente, así que no era apto para aplicaciones de negocios o industriales, que requerían la capacidad de acceder a información almacenada en Sistemas Gestionadores de Bases de Datos (DBMS).
Era además necesario crear una forma sencilla de acceder a bases de datos usando Java, pues de otra manera se dejaría al desarrollador con la tarea de implementar llamadas de bajo nivel al DBMS.
En ese entonces Java era un lenguaje que prometía independencia de plataformas, lo cual lo hacia un ambiente muy atractivo para crear todo tipo de aplicaciones, y el acceso a Base de Datos se convertía cada vez más en una necesidad que un lujo.
La gente en JavaSoft se preguntó como atraer a los programadores y a las empresas a invertir su dinero y su tiempo en JDBC. Es por esto que decidieron crear ventajas competitivas en su producto, mejorando cada vez mas la interface de JDBC para que:
1. Los programadores pudieran sentirse como si usaran solamente Java, permitiéndoles una forma sencilla de uso del DBMS.
2. Los programadores se sintieran en contacto directo con el DBMS y no con un socket o un proceso en cualquier maquina.
3. La comunicación con la base de datos fuera fácil de programar. Esto es, que las empresas que quisieran hacer controladores JDBC para comunicarse con sus productos lo pudieran hacer en forma sencilla.
4. Fuese flexible, para aceptar configuraciones diferentes de conectividad. Osea, que la misma aplicación del desarrollador pudiese acceder a varios DBMS a la vez, tal vez hasta en varios hilos simultáneos.
JDBC vs. ODBC
ODBC (Open DataBase Connectivity: Conectividad abierta de Base de Datos) es la interface para conectarse con BD’s relacionales más usada por los programadores de aplicaciones.
Tal vez nos estemos preguntando porque se desarrolló JDBC si ya existía una interface popular que supuestamente hace lo mismo. La respuesta es que se usa JDBC por diferentes razones:
• ODBC usa una interface escrita en lenguaje de programación C. Por lo tanto hace que no sea portable.
• ODBC se ha de instalar manualmente en cada maquina, en cambio los drivers de JDBC como están escritos en JAVA son automáticamente instalables, portables y seguros.
Hay que decir también, que existen drivers puente entre JDBC-ODBC, los cuales traducen las llamadas de JDBC a ODBC permitiendo comunicarse con distintas BD propietarias
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesAlejandro Bolaños Ussa
En este seminario, se expondrán herramientas de desarrollo utilizadas a nivel empresarial, utilizando herramientas de alta calidad permitiendo el trabajo multicapa. Esta presentación fue socialzada en la universidad colegio mayor del cauca, para los estudiantes de ingeniería y desarrollo de software
JBossAS: Desarrollo con Java Server FacesAitor Acedo
JBossAS: Desarrollo con Java Server Faces es un curso en español para introducir la tecnología JSF en el desarrollo de interfaces en aplicaciones web y realizar despliegues en el servidor JBoss AS 4.0.5
HISTORIA DEL JDBC
JDBC existe desde 1996, y fue incluido desde la versión 1.1 de Java Development Kit por JavaSoft, aunque también se hizo disponible para usarse con JDK 1.02. El problema de usar JDBC con el JDK 1.02 es que los usuarios comunes tenían que agregar a su maquina virtual de Java las clases que implementan JDBC, lo cual era muy engorroso y difícil. Es por esto que desde la versión de JDK 1.1, JDBC viene incluido como el paquete java.sql.
Java en un principio era visto como un lenguaje para poner animaciones en Internet, la información que presentaba no era persistente, así que no era apto para aplicaciones de negocios o industriales, que requerían la capacidad de acceder a información almacenada en Sistemas Gestionadores de Bases de Datos (DBMS).
Era además necesario crear una forma sencilla de acceder a bases de datos usando Java, pues de otra manera se dejaría al desarrollador con la tarea de implementar llamadas de bajo nivel al DBMS.
En ese entonces Java era un lenguaje que prometía independencia de plataformas, lo cual lo hacia un ambiente muy atractivo para crear todo tipo de aplicaciones, y el acceso a Base de Datos se convertía cada vez más en una necesidad que un lujo.
La gente en JavaSoft se preguntó como atraer a los programadores y a las empresas a invertir su dinero y su tiempo en JDBC. Es por esto que decidieron crear ventajas competitivas en su producto, mejorando cada vez mas la interface de JDBC para que:
1. Los programadores pudieran sentirse como si usaran solamente Java, permitiéndoles una forma sencilla de uso del DBMS.
2. Los programadores se sintieran en contacto directo con el DBMS y no con un socket o un proceso en cualquier maquina.
3. La comunicación con la base de datos fuera fácil de programar. Esto es, que las empresas que quisieran hacer controladores JDBC para comunicarse con sus productos lo pudieran hacer en forma sencilla.
4. Fuese flexible, para aceptar configuraciones diferentes de conectividad. Osea, que la misma aplicación del desarrollador pudiese acceder a varios DBMS a la vez, tal vez hasta en varios hilos simultáneos.
JDBC vs. ODBC
ODBC (Open DataBase Connectivity: Conectividad abierta de Base de Datos) es la interface para conectarse con BD’s relacionales más usada por los programadores de aplicaciones.
Tal vez nos estemos preguntando porque se desarrolló JDBC si ya existía una interface popular que supuestamente hace lo mismo. La respuesta es que se usa JDBC por diferentes razones:
• ODBC usa una interface escrita en lenguaje de programación C. Por lo tanto hace que no sea portable.
• ODBC se ha de instalar manualmente en cada maquina, en cambio los drivers de JDBC como están escritos en JAVA son automáticamente instalables, portables y seguros.
Hay que decir también, que existen drivers puente entre JDBC-ODBC, los cuales traducen las llamadas de JDBC a ODBC permitiendo comunicarse con distintas BD propietarias
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesAlejandro Bolaños Ussa
En este seminario, se expondrán herramientas de desarrollo utilizadas a nivel empresarial, utilizando herramientas de alta calidad permitiendo el trabajo multicapa. Esta presentación fue socialzada en la universidad colegio mayor del cauca, para los estudiantes de ingeniería y desarrollo de software
Teniendo en cuenta la gran masificación de los web services, como así también su utilidad, el objetivo del presente proyecto es elaborar un servicio web, teniendo en cuenta su optimización y comparando diferentes plataformas para poder lograr un servicio que pueda atender la mayor cantidad de solicitudes posibles.
Con motivo de realizar lo mencionado anteriormente se presenta la siguiente idea:
Crear un web services SOAP que permita realizar búsquedas de ip’s y que devuelva la localización del mismo.
El objetivo de esta aplicación es ofrecer la posibilidad de brindar un servicio de buscador eficiente
Esta presentación es sobre JavaSerber Page (JSP) en la cual se detalla sus principales características.
✅ CURSOS VIRTUALES EN UDEMY
⏺ FUNDAMENTOS DE PROGRAMACIÓN: Aprende las mejores practicas
https://www.udemy.com/course/fund-java/?referralCode=59EF4456EC0F433C641E
⏺ PROGRAMACIÓN DE BASE DE DATOS ORACLE CON PL/SQL
https://www.udemy.com/course/lenguaje-plsql/?referralCode=3B8A67CA0AADFCFB930C
⏺ CURSO PROFESIONAL DE JAVA ORIENTADO A OBJETOS
https://www.udemy.com/course/java-orientado-a-objetos/?referralCode=ED949D58C79D27158E8D
⏺ PROGRAMACIÓN DE BASE DE DATOS ORACLE CON JAVA JDBC
https://www.udemy.com/course/java-jdbc-oracle/?referralCode=C518C8D3028403F7F6DF
✅ ENLACES DE INTERES
⏺ Cursos virtuales: https://gcoronelc.github.io
⏺ Canal de YouTube: https://www.youtube.com/DesarrollaSoftware
⏺ Blog: http://desarrollasoftware.com/
⏺ Contacto: gcoronelc@gmail.com
Presentación sobre "Introducción al desarrollo web moderno" ofrecida en el Evento organizado por el MUG en conjunto con la UAI Rosario, el día 05/06/2015.
1. Combinación de tecnologías en la
construcción de Aplicaciones
Web
Juan Ramón Pérez Pérez
Universidad de Oviedo
jrpp@pinon.ccu.uniovi.es
2. De las tecnologías a la
arquitectura
• Ya conocemos varias tecnologías que nos sirven
de base para construir servidores de información.
• Pero, ¿Cómo construimos una aplicación web?
– ¿Utilizamos una sola tecnología?
• ¿Cuál de ellas podemos utilizar?
– ¿Combinamos varias tecnologías recogiendo sus
ventajas?
• ¿En qué parte de la aplicación encaja cada tecnología?
2
3. Tecnologías servlets y JSP
• Pudiendo utilizar JSP. ¿Es necesario desarrollar
algún servlet?
• ¿Cuál es la mejor forma de combinar servlets y
JSP?
• ¿Dónde situamos el código escrito en Java?
• ¿Hay otros componentes involucrados en el
procesamiento de peticiones como los JavaBeans?
• Si es así, ¿en qué parte de la arquitectura aparecen
y cuál es su papel?
3
4. Qué es la arquitectura de una
aplicación
• Una arquitectura se utiliza para organizar las
diferentes partes de una aplicación.
• Las aplicaciones web pueden tener muchos
elementos:
– Páginas JSP, clases Java, archivos HTML.
• Definir una arquitectura:
– Ayudará a decidir cómo dividir la aplicación web.
– Proporcionará una pauta para definir la forma en que
todos los componentes trabajen juntos para llevar a
cabo la funcionalidad que se pretende conseguir con la
aplicación.
4
5. Arquitecturas para construir
Aplicaciones Web
• Arquitectura centrada en páginas. JSPs
gestionan las peticiones directamente.
Modelo 1.
• Arquitectura de “dispatcher” o centrada
en servlets. Un servlet o un JSP actúa de
mediador o controlador, delegando la
resolución de peticiones en páginas JSP y
JavaBeans. Modelo 2.
5
6. Arquitectura centrada en páginas
• Se utilizan páginas JSP/HTML para interactuar
con el usuario (lógica de presentación).
• Páginas JSP responsables de controlar el flujo de
la aplicación: recibir peticiones, direccionar a la
siguiente página (lógica de control o
procesamiento).
• El acceso a los datos se lleva a cabo desde la
misma página JSP o con JavaBeans, según la
variante.
6
7. Esquema de la arquitectura
centrada en páginas
Nivel de
JSP lógica de
JSP negocio
JSP
HTML JSP
HTML
/ HTML
JSP
/ HTML
JSP
/ / JSP
JSP
JavaBeans
JavaBeans
JavaBeans
JavaBeans
Nivel de Nivel de
presentación Datos
BD
7
8. Arquitectura centrada en páginas
• Ventajas:
– es simple de programar y permite al creador de las
páginas generar contenido dinámico fácilmente,
basándose en la petición y el estado de la aplicación.
• Inconvenientes:
– Tiene problemas de mantenimiento cuando la
aplicación crece. Muchos scriptlets incrustados en las
páginas JSP.
– No sólo reduce modularidad y oportunidades de
reutilización de código; sino que también proporciona
una separaciones de papeles de desarrollo muy pobre.
8
9. Vista-Página (I)
• Esta arquitectura básica conlleva:
– Invocaciones directas a páginas del servidor
– Código Java incrustado (scriplets) y
– Etiquetas JSP que generan dinámicamente la
salida por sustitución dentro del HTML.
– El acceso a datos se realiza directamente sobre
la página JSP.
9
10. Vista-Página (y II)
• Beneficios:
– Desde el punto de vista del desarrollador es una
aproximación muy directa al problema y fácil de
abordar.
– El código es fácil de localizar ya que se encuentra junto
con la página que gestiona.
• Inconvenientes
– Sólo permite abordar aplicaciones web de pequeña
escala.
– El que todo el código esté dentro de las página impide
separar papeles en el desarrollo.
10
11. Vista-Página con JavaBeans
• Se utilizan JavaBeans para acceder a los datos.
• La utilización de componentes JavaBeans permite:
– Separar el código Java relacionado con la lógica del
negocio del código de almacenamiento.
– Se podrían utilizar etiquetas de usuario en la página
JSP para hacer referencia al JavaBean.
– Permite realizar una pequeña separación de papeles en
el desarrollo de la aplicación web.
11
12. Separación de papeles en el
desarrollo de una aplicación web
Dominio de los
Presentación desarrolladores
de Lógica
datos de la
aplicación
Acceso
a Base de
datos datos
Dominio de los
Diseñadores web
12
13. Arquitectura de “dispatcher” o
MVC
• Los JSP se utilizan para generar el nivel de
presentación y los Servlets para realizar las tareas
que requieren procesamiento.
• Además el controlador gestiona la navegación,
decidiendo a que página JSP debe redireccionarse
a continuación.
• No aparece lógica de procesamiento dentro de la
presentación JSP: simplemente accede a los
JavaBeans que previamente se han cargado para
extraer dinámicamente su contenido.
13
14. Esquema de la arquitectura MVC
1. Envío de petición Nivel de
al controlador
Servlet lógica de
o negocio
HTML JSP
HTML
/ HTML
JSP 2. Invocación
/ HTML
JSP de Beans
/ / JSP
JSP 3. Redirección a
la página JavaBeans
JavaBeans
JavaBeans
JavaBeans
Nivel de Nivel de
presentación Datos
BD
14
15. Componentes arquitectura MVC
Datos
Modelo (Propiedades Beans) Vista
Beans JSPs
Info.Interfaz
Evento (HTML)
Evento (forward) Datos
(petición) (<jsp:getproperty>)
Controlador Info.Eventos
servlet (parámetros)
Evento
(petición) Interfaz
Navegador
15
16. El Modelo
• Representa la lógica de negocio de una
aplicación.
• Encapsula las reglas de negocio en
componentes que son fáciles de probar,
permiten mejorar la calidad del software y
promueven la reutilización.
16
17. Componentes de estado
• El estado:
– Define el conjunto actual de valores del modelo.
– Incluye métodos para cambiar estos valores.
• Estos métodos recogen parte de la lógica de
negocio.
• Deberían de ser independientes del protocolo que
se utilizara para acceder a ellos.
• Los JavaBeans son la elección lógica para
implementar los componentes de estado.
17
18. Cualidades del diseño en
JavaBeans
• La construcción independiente de estos
componentes permite las siguientes cualidades de
diseño:
– Reutilización, la eliminación de la lógica de
presentación, permite que diferentes aplicaciones hagan
uso de la misma lógica de negocio.
– Calidad, recogiendo la lógica de negocio en el mismo
sitio, se puede probar y revisar.
– Robustez, encapsulando toda la lógica en un solo sitio
podemos facilitar su reutilización y reducir las
posibilidades de que aparezca un error.
18
19. Componentes de proceso
• Las acciones:
– Definen los cambios permitidos para los
estados en respuesta a los eventos.
• La lógica de negocio también determina
como se construyen los componentes de
proceso.
19
20. Alternativas en el diseño de
componentes de proceso
• El diseño de estos componentes permite más
alternativas que los de estado:
– En sistemas simples, las acciones pueden ser llevadas a
cabo en el controlador; pero generalmente no se
recomienda.
– Normalmente se plantea un nivel de componentes de
proceso para capturar los requisitos que dirigen la
interacción con los componentes de estado.
• Frecuentemente estos componentes están ligados a
un protocolo para poder obtener información del
evento.
20
21. La vista
• Constituye la lógica de presentación de una
aplicación.
• Los componentes de la vista obtienen el estado
actual del sistema del modelo y proporcionan el
interfaz de usuario para el protocolo involucrado
(en nuestro caso HTTP de los navegadores web).
• Como parte de la generación del interfaz de
usuario la vista presenta los eventos que el usuario
puede activar en cada momento.
• JSP es la elección natural para implementar la
vista. 21
22. El controlador
• Proporciona unión a toda la arquitectura.
• Responsable de:
– recibir eventos,
– determinar cual es el manejador apropiado,
– invocar este manejador y
– determinar la generación de la respuesta apropiada.
• Los servlets son la elección ideal para la
tecnología del controlador.
22
23. Tareas que debería gestionar el
controlador
• Seguridad, asegurar autentificación y autorización.
Esto podría delegarse en el motor de servlets.
• Identificación de eventos.
• Preparar el modelo, asegurar la disponibilidad de
los componentes de modelo requeridos.
• Procesamiento del evento.
• Gestión de errores, gestionar los errores generados
por los manejadores.
• Activar la generación de la respuesta, pasando el
control al generador apropiado.
23
24. Cuestiones de diseño
• Esta arquitectura implica, de forma inherente, un
cierto acoplamiento entre los distintos
componentes que deberíamos de evitar. Ej.: La
vista debe proporcionar información de eventos de
forma que puedan ser identificados de forma única
por el controlador.
• La vista tiene acoplamiento con el controlador por
la información de eventos y el controlador está
acoplado tanto con el modelo como con la vista.
• Para superar este inconveniente se puede utilizar
un fichero de inicialización, con las capacidades 24
de introspección y reflectividad de Java.
25. Ejemplo de arquitectura MVC
(desde el contenedor Controlador (servlet)
de servlets)
Tabla manejadores
init init( ) eventos
Evento – Manejador
petición doGet( )
doPost( )
process( ) Clases
process( ) manejadoras
respuesta forward( ) de eventos
respuesta forward( )
25
26. Proyecto Struts
• Qué es Struts
• Particularidades del MVC en Struts
• ¿Para qué sirve?
• ¿Cómo se puede utilizar?
• Más información
– http://jakarta.apache.org/struts
– http://jakarta.apache.org/struts/userGuide
– http://www.programacion.com/java/tutorial.joa_struts.html
26
Notas del editor
Tanto servlets como JSP permiten construir aplicaciones web.