Está en la página 1de 46

FACULTAD DE INGENIERÍA Y ARQUITECTURA

ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

GUIA DE PRÁCTICA
DESARROLLO RÁPIDO DE
APLIACIONES PARA INTERNET
Versión 1.0
2019-1

Elaborado por:

Departamento Académico de Ingeniería de Sistemas e Informática


Av. San Felipe 1109 – Jesús María
Lima – Perú, 2018
Teléfono: 2660195 Anexos: 138-163
E-mail: r_castaneda@uap.edu.pe
Pagina Web : www.uap.edu.pe
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Historial de Revisiones

Fecha Versión Descripción Autor Aprobado por

Primera Versión del


29/11/18 1.0 Mg. Ing. Julio Arboleda Huamán Dr. Rafael Eduardo Castañeda Alva
Documento

Desarrollo Rápido de Aplicaciones para Internet Pagina 2


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

CATEDRA DE DESARROLLO RÁPIDO DE


APLICACIONES PARA INTERNET

_________________________________________
DOCENTE PRINCIPAL
RESPONSABLE DEL CURSO

________________________________________________________
DOCENTE PRINCIPAL
RESPONSABLE DEL LABORATORIO

Lima – Perú, 2019

Desarrollo Rápido de Aplicaciones para Internet Pagina 3


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Agradecimientos

_________________________________________
RECTOR
UNIVERSIDAD ALAS PERUANAS

Dr. Oscar Enrique Lagravere von Massenbach PhD


DECANO FACULTAD DE INGENIERIA Y ARQUITECTURA
UNIVERSIDAD ALAS PERUANAS

Dr. Rafael Eduardo Castañeda Alva


DIRECTOR ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E
INFORMATICA
UNIVERSIDAD ALAS PERUANAS

Desarrollo Rápido de Aplicaciones para Internet Pagina 4


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Prefacio

La presente guía de practica es una recopilación de varios tópicos asociados a la


asignatura de DESARROLLO RÁPIDO DE APLICACIONES PARA INTERNET,
como base orientadora en las prácticas de pre-grado para los estudiantes del Sexto Ciclo,
aptos para llevar el presente curso en la Escuela Profesional de Ingeniería de sistemas e
Informática de la Facultad de Ingeniería y arquitectura de la Universidad Alas Peruanas.

En cada Unidad Didáctica se desarrollará el aspecto básico y fundamental de la teoría


y la practica a desarrollar asociada al desarrollo de aplicaciones web utilizando la
tecnología ASP NET.

Esta guía se encuentra en constante mejora con la contribución del grupo de


profesionales y estudiantes que conforman la Escuela Profesional de Ingeniería de
Sistemas e Informática.

Desarrollo Rápido de Aplicaciones para Internet Pagina 5


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Índice
1. Presentación ........................................................................................................... 7
2. Objetivos.................................................................................................................. 7
3. Referencias Normativas........................................................................................ 7
4. Estándares de Laboratorio ................................................................................... 7
Unidad I: Introducción a JSP (Javaserver Page) .............................................................. 8
4.1.1. Guía I: Tópicos Básico sobre HTML …………………………………………….8
4.1.2. Guía II: Desarrollo de aplicaciones con JDBC ......................................... 10
4.1.3. Guía III: Generación de Reportes ............................................................... 10
4.1.4. Guía IV: Ejemplo de Aplicación HTML con Objeto <Table> .................. 12
Unidad II: Desarrollo de aplicaciones con JDBC .......................................................... 14
4.1.5. Guía V: Tópicos Básicos sobre JDBC ....................................................... 14
4.1.6. Guía VI: Ejercicios de Conexión a BD ....................................................... 16
4.1.7. Guía VII: CONSULTAS SIN PARAMETROS ........................................... 21
4.1.8. Guía VIII: Ejemplo de Consulta con Parámetros ..................................... 23
Unidad III: DISEÑO DE REPORTES EN JSP ............................................................. 27
4.1.9. Guía IX: DISEÑO DE UN REPORTE BASICO ........................................ 27
4.1.10. Guía X: CONECTAR REPORTE CON UNA BASE DE DATOS ....... 27
4.1.11. Guía XI: Personalizar el detalle del Reporte ......................................... 29
4.1.12. Guía XII: Manejo de la Banda de Pie de Pagina .................................. 32
Unidad IV: Spring Framework ...................................................................................... 33
4.1.14. Guía XIV: Spring ........................................................................................ 38
4.1.15. Guía XV: Precisiones sobre Frameworks.............................................. 40
4.1.16. Guía XVI: Spring Modules ........................................................................ 42
Anexo 1: Glosario ........................................................................................................... 46

Desarrollo Rápido de Aplicaciones para Internet Pagina 6


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
GUIA DE PRACTICA PARA EL CURSO DE DESARROLLO RAPIDO DE
APLICACIONES PARA INTERNET

1. Presentación

El curso de <Colocar Nombre del Curso> pertenece a la Línea de Carrera o Formativa y se dicta en
la Carrera de Ingeniería de Sistemas e Informática.

2. Objetivos

Brindar a los estudiantes ejercicios y casos prácticos que le permitan desarrollar sus habilidades y
conocimientos en el área de <Colocar la rama a la cual pertenece el curso> para abordar los
problemas que se dan en los diferentes campos de la actividad humana. Haciendo énfasis en la
formulación y solución de problemas, haciendo uso de programas computacionales.

3. Referencias Normativas

• Ley Universitaria N°30220.


• Reglamento general de la UAP
• Plan Curricular de la EPISI.
• Sílabo EPISI

4. Estándares de Laboratorio

1. Durante la permanencia en el laboratorio tanto los docentes como los estudiantes, no deberán
consumir alimentos, ni bebidas, pos su seguridad y la de los equipos de cómputo.
2. Los estudiantes deberán seguir las indicaciones del docente responsable de la clase.
3. Revisar la informacion teórica previa al uso del software especializado para obtener mayor
provecho a la sesión de clase.
4. Mantener una actitud responsable, prudente, no correr, ni gritar.
5. Al terminar la sesión de clase los estudiantes deberán apagar correctamente el equipo de cómputo
que usaron para trabajar.

Desarrollo Rápido de Aplicaciones para Internet Pagina 7


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Unidad I: Introducción a JSP (Javaserver Page)


4.1.1.Guía I: Tópicos Básico sobre HTML
Topicos Basicos sobre HTML
En este apartado aprenderemos los conceptos básicos de HTML: qué es, qué hace y qué
estructura tiene un documento en HTML.

Que es HTML
La mayoría de las aplicaciones de escritorio que pueden leer y escribir
ficheros utilizan un formato de fichero especial. Por ejemplo, Microsoft
Word entiende los ficheros .doc y Microsoft Excel entiende los .xls. Estos
ficheros contienen las instrucciones para reconstruir el documento cuando
se vuelve a abrir y para saber cuál es su contenido, además de los
"metadatos" sobre el artículo, como por ejemplo el autor, la fecha de la
última modificación del documento e incluso cosas como la lista de cambios
realizados con el fin de poder recuperar todas sus diferentes versiones.

El HTML (HyperText Markup Language) es un lenguaje para describir el


contenido de los documentos de la web. Utiliza una sintaxis especial que
contiene marcadores (conocidos como "elementos") que rodean al texto que
hay dentro del documento para indicar a los agentes de usuario cómo deben
interpretar esta parte del documento.

El HTML es sólo una representación textual del contenido y de su


significado general. Por ejemplo, el código para el encabezamiento
"Aspecto del HTML" es el siguiente:

<h2 id="htmllooks">Aspecto del HTML </h2>

La parte <h2> es un marcador (que se conoce como "etiqueta") que


significa "lo que sigue se debe considerar como un título de segundo nivel".
</h2> es una etiqueta que indica dónde acaba el título de segundo nivel (y
se conoce como "etiqueta de cierre"). La etiqueta de apertura, la etiqueta de
cierre y todo lo que hay entre ellas se conoce como "elemento". Mucha gente
utiliza los términos elemento y etiqueta indistintamente, lo cual no es del
todo correcto. id="htmllooks" es un atributo; ya hablaremos de los atributos
más adelante.

La mayoría de los navegadores incorporan una opción "Código fuente" o


"Ver el código fuente", normalmente bajo el menú "Ver". Si vuestro
navegador incorpora esta opción, seleccionadla y dedicad unos momentos
a mirar el código fuente HTML de esta página.

Desarrollo Rápido de Aplicaciones para Internet Pagina 8


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 9


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
4.1.2.Guía II: Desarrollo de aplicaciones con JDBC
Estructura de un documento HTML
El documento HTML válido más pequeño posible sería algo similar a esto:

Sintaxis de un documento HTML


Como ya hemos visto, un elemento básico en HTML consiste en dos
marcadores al principio y al final de un bloque de texto. Hay algunos
elementos que no rodean al texto y, en la mayoría de los casos, los elementos
pueden contener subelementos (como html que contiene head y body en el
ejemplo anterior).

Los elementos también pueden tener atributos, que pueden modificar el


comportamiento del elemento e introducir un significado adicional.

4.1.3.Guía III: Generación de Reportes

Elementos de Bloque y de linea


En el HTML hay dos categorías generales de elementos que corresponden a
dos tipos de contenidos y estructuras que representan estos elementos:
elementos de bloque y elementos en línea.

Los elementos de bloque son elementos de nivel superior y normalmente


definen la estructura del documento. Puede ser útil ver los elementos de
bloque como aquellos que empiezan en una línea nueva y que representan
una ruptura con lo anterior.

Algunos elementos de bloque comunes incluyen los párrafos, las listas, los
títulos y las tablas.

Desarrollo Rápido de Aplicaciones para Internet Pagina 10


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
Los elementos en línea son aquellos que se encuentran incluidos en los
elementos estructurales de bloque y que incluyen sólo partes pequeñas del
contenido del documento, y no párrafos enteros ni grupos de contenido.

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 11


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

4.1.4.Guía IV: Ejemplo de Aplicación HTML con Objeto <Table>


Las tablas más sencillas de HTML se definen con tres
etiquetas: <table> para crear la tabla, <tr> para crear cada fila
y <td> para crear cada columna.
A continuación, se muestra el código HTML de una tabla sencilla:

<html>
<head><title>Ejemplo de tabla sencilla</title></head>
<body>

<h1>Listado de cursos</h1>

<table>
<tr>
<td><strong>Curso</strong></td>
<td><strong>Horas</strong></td>
<td><strong>Horario</strong></td>
</tr>

<tr>
<td>CSS</td>
<td>20</td>
<td>16:00 - 20:00</td>
</tr>

<tr>
<td>HTML</td>
<td>20</td>
<td>16:00 - 20:00</td>
</tr>

<tr>
<td>Dreamweaver</td>
<td>60</td>
<td>16:00 - 20:00</td>
</tr>
</table>

</body>
</html>

Si se visualiza el código anterior en cualquier navegador, se obtiene una


tabla como la que muestra la siguiente imagen:

Desarrollo Rápido de Aplicaciones para Internet Pagina 12


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 13


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Unidad II: Desarrollo de aplicaciones con JDBC


4.1.5.Guía V: Tópicos Básicos sobre JDBC
Java Database Connectivity, más conocida por sus siglas JDBC, es una API
que permite la ejecución de operaciones sobre bases de datos desde el
lenguaje de programación Java, independientemente del sistema operativo
donde se ejecute o de la base de datos a la cual se accede, utilizando el
dialecto SQL del modelo de base de datos que se utilice.

El API JDBC se presenta como una colección de interfaces Java y métodos


de gestión de manejadores de conexión hacia cada modelo específico de
base de datos. Un manejador de conexiones hacia un modelo de base de
datos en particular es un conjunto de clases que implementan las interfaces
Java y que utilizan los métodos de registro para declarar los tipos de
localizadores a base de datos (URL) que pueden manejar. Para utilizar una
base de datos particular, el usuario ejecuta su programa junto con la
biblioteca de conexión apropiada al modelo de su base de datos, y accede a
ella estableciendo una conexión; para ello provee el localizador a la base
de datos y los parámetros de conexión específicos. A partir de allí puede
realizar cualquier tipo de tarea con la base de datos a la que tenga permiso:
consulta, actualización, creación, modificación y borrado de tablas,
ejecución de procedimientos almacenados en la base de datos, etc.

Drivers JDBC
Los drivers JDBC drivers son adaptadores del lado del cliente (instalados
en la máquina cliente, no en el servidor) que convierten la petición
proveniente del programa JAVA a un protocolo que el SGBD pueda
entender.

Driver JDBC Tipo 1 (también llamado Puente JDBC-ODBC) convierte el


método JDBC a una llamada a una función ODBC. Utiliza los drivers ODBC
para conectar con la base de datos.
Driver JDBC Tipo 2 (también llamado driver API-Nativo) convierte el
método JDBC a llamas nativas de la API de la base de datos. Es más rápido
que el puente JDBC-ODBC pero se necesita instalar la librería cliente de la
base de datos en la máquina cliente y el driver es dependiente de la
plataforma.
Driver JDBC Tipo 3. Hace uso de un Middleware entre el JDBC y el SGBD.
Driver JDBC Tipo 4 (también llamado Driver Java Puro directo a la base
de datos). Es independiente a la plataforma.

Librería java.sql

Desarrollo Rápido de Aplicaciones para Internet Pagina 14


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
JDBC ofrece el paquete java.sql, en el que existen clases muy útiles para

trabajar con bases de datos.


• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 15


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

4.1.6.Guía VI: Ejercicios de Conexión a BD


Caso tipico de Conexión a Base de datos desde Java
Java puede conectarse a múltiples bases de datos, con la que mejor se lleva
es con Oracle, sin embargo, en ocasiones puede ser que los que venimos de
la web, al tener la necesidad de hacer una aplicación de escritorio, nos
sintamos más acostumbrados con MySQL.
En primer lugar, para realizar este ejemplo debemos tener instalado tres
cosas en nuestro sistema:
 La máquina virtual de Java (Para ejecutar Java, claro está)
 MySQL (en mi caso yo tengo instalado Xampp que viene con Apache
y MySQL, entre otros servicios
 Netbeans (Con Java instalado)

MySQL
En primer lugar vamos a crear una base de datos, a la cual yo
llamaré: java_mysql. La mista tendrá una sola tabla llamada tareas con el
siguiente código:

Java
Vamos a abrir Netbeans y vamos a crear un nuevo proyecto, yendo a File -
> New Project -> Java -> Java Application.

Desarrollo Rápido de Aplicaciones para Internet Pagina 16


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
Vamos a ponerle un nombre y vamos a guardarlo en alguna parte de nuestra
máquina.
Vamos a borrar todo lo que esté dentro de la carpeta source (o src) y dentro
vamos a crear dos paquetes, uno al que yo llamaré modelos y otro al que
llamaré servicios.

Ahora, para conectar Java a MySQL tenemos que agregar una librería que
se encargará de hacer esa magia. Así que dentro que pulsando botón
derecho sobre la carpeta Libraries, vamos a ir a Add Library

Y agregamos la librería MySQL JDBC Driver, primero seleccionándola y


luego pulsando Add Library.

Desarrollo Rápido de Aplicaciones para Internet Pagina 17


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
Bueno, ya tenemos todo, no nos falta nada. Ya podemos empezar a escribir
código Java.
Dentro del paquete modelos, vamos a crear una clase, a la que yo
llamaré Tarea.java, con el siguiente código:

package modelos;
public class Tarea {
private final Integer id_tarea;
private String titulo;
private String descripcion;
private Integer nivel_de_prioridad;
public Tarea() {
this.id_tarea = null;
this.titulo = null;
this.descripcion = null;
this.nivel_de_prioridad = null;
}
public Tarea(Integer id_tarea, String titulo, String descripcion, Integer
nivel_de_prioridad) {
this.id_tarea = id_tarea;
this.titulo = titulo;
this.descripcion = descripcion;
this.nivel_de_prioridad = nivel_de_prioridad;
}
public Integer getId_tarea() {
return id_tarea;
}
public String getTitulo() {
return titulo;
}
public String getDescripcion() {
return descripcion;
}
public Integer getNivel_de_prioridad() {
return nivel_de_prioridad;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public void setNivel_de_prioridad(Integer nivel_de_prioridad) {
this.nivel_de_prioridad = nivel_de_prioridad;
}
@Override
public String toString() {

Desarrollo Rápido de Aplicaciones para Internet Pagina 18


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
return "Tarea{" + "id_tarea=" + id_tarea + ", titulo=" + titulo + ",
descripcion=" + descripcion + ", nivel_de_prioridad=" +
nivel_de_prioridad + '}';
}
}

Una clase, nada nuevo, que va a representar el modelo de una tarea.

Conectando JAVA con MySQL


Bien, ahora creamos la clase que va a conectar nuestra aplicación con
MySQL, yendo al paquete servicios, vamos a crear una nueva clase
llamada Conexion.java con el siguiente código:

package servicios;
import java.sql.*;
public class Conexion {
private static Connection cnx = null;
public static Connection obtener() throws SQLException,
ClassNotFoundException {
if (cnx == null) {
try {
Class.forName("com.mysql.jdbc.Driver");
cnx =
DriverManager.getConnection("jdbc:mysql://localhost/java_mysql",
"root", "");
} catch (SQLException ex) {
throw new SQLException(ex);
} catch (ClassNotFoundException ex) {
throw new ClassCastException(ex.getMessage());
}
}
return cnx;
}
public static void cerrar() throws SQLException {
if (cnx != null) {
cnx.close();
}
}
}

Esta clase tendrá un método estático llamado obtener(), el cual va a


devolvernos una instancia de conexión y de no haber una previa va crear
una:
cnx = DriverManager.getConnection("jdbc:mysql://localhost/java_mysql",
"root", "");

Desarrollo Rápido de Aplicaciones para Internet Pagina 19


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
Esto gracias al método getConnection(), el cuál recibirá como primer
parámetro el tipo de base de datos (MySQL) y la ubicación de la base de
datos, en mi caso, como estoy trabajando en un entorno local, será localhost.
El segundo parámetro es el usuario y el tercero la contraseña.
A su vez este método puede disparar dos excepciones, SQLException, si
surge algún error, por ejemplo que no se pueda conectar a la base de datos,
y ClassNotFoundException, en caso de que no encuentre la librería.
Y por último el método, también estático, cerrar(), que como su nombre lo
indica, cerrará la conexión, en caso de que haya alguna abierta.

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 20


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
4.1.7.Guía VII: CONSULTAS SIN PARAMETROS

Ejemplo:
Interfaz Statement
Utilice Connection.createStatement() para crear objetos Statement nuevos.

El ejemplo que sigue muestra cómo se utiliza un objeto Statement.

// Conéctese al servidor.
Connection c =
DriverManager.getConnection("jdbc:as400://mySystem");

// Cree un objeto Statement. Statement s =


c.createStatement();

// Ejecute una sentencia SQL que cree


// una tabla en la base de datos.
s.executeUpdate("CREATE TABLE MYLIBRARY.MYTABLE (NAME
VARCHAR(20), ID INTEGER)");

// Ejecute una sentencia SQL que inserte


// un registro en la tabla.
s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID)
VALUES ('DAVE', 123)");

// Ejecute una sentencia SQL que inserte


// un registro en la tabla.
s.executeUpdate("INSERT INTO MYLIBRARY.MYTABLE (NAME, ID)
VALUES ('CINDY', 456)");

// Ejecute una consulta SQL en la tabla.


ResultSet rs = s.executeQuery("SELECT * FROM
MYLIBRARY.MYTABLE");

// Cierre el objeto Statement y


// el objeto Connection.
s.close();
c.close();

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 21


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 22


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
4.1.8.Guía VIII: Ejemplo de Consulta con Parámetros

Ejemplo Tipo de una consulta con Parámetros:


import java.sql.*;
import java.util.Properties;

public class PreparedStatementExample {

public static void main(java.lang.String[] args)


{
// Cargar lo siguiente desde un objeto de propiedades.
String DRIVER = "com.ibm.db2.jdbc.app.DB2Driver";
String URL = "jdbc:db2://*local";

// Registrar el controlador JDBC nativo. Si el controlador no puede


// registrarse, la prueba no puede continuar.
try {
Class.forName(DRIVER);
} catch (Exception e) {
System.out.println("Imposible registrar el controlador.");
System.out.println(e.getMessage());
System.exit(1);
}

Connection c = null;
Statement s = null;

// Este programa crea una tabla que


// las sentencias preparadas utilizan más tarde.
try {
// Crear las propiedades de conexión.
Properties properties = new Properties ();
properties.put ("user", "userid");
properties.put ("password", "password");

// Conectar con la base de datos local de iSeries.


c = DriverManager.getConnection(URL, properties);

// Crear un objeto Statement.


s = c.createStatement();
// Se suprime la tabla de prueba, si existe. Observe que
// en todo este ejemplo se presupone que la colección
// MYLIBRARY existe en el sistema.
try {
s.executeUpdate("DROP TABLE MYLIBRARY.MYTABLE");
} catch (SQLException e) {
// Se continúa simplemente... es probable que la tabla no exista.
}

Desarrollo Rápido de Aplicaciones para Internet Pagina 23


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
// Se ejecuta una sentencia SQL que crea una tabla en la base de
datos.
s.executeUpdate("CREATE TABLE MYLIBRARY.MYTABLE
(NAME VARCHAR(20), ID INTEGER)");

} catch (SQLException sqle) {


System.out.println("El proceso de base de datos ha fallado.");
System.out.println("Razón: " + sqle.getMessage());
} finally {
// Se cierran los recursos de base de datos.
try {
if (s != null) {
s.close();
}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Statement.");
}
}

// A continuación, este programa utiliza una sentencia preparada para


// insertar muchas filas en la base de datos.
PreparedStatement ps = null;
String[] nameArray = {"Rich", "Fred", "Mark", "Scott", "Jason",
"John", "Jessica", "Blair", "Erica", "Barb"};
try {
// Crear un objeto PreparedStatement utilizado para insertar datos
en la
// tabla.
ps = c.prepareStatement("INSERT INTO MYLIBRARY.MYTABLE
(NAME, ID) VALUES (?, ?)");

for (int i = 0; i < nameArray.length; i++) {


ps.setString(1, nameArray[i]); // Se establece el nombre a partir
de nuestra matriz.
ps.setInt(2, i+1); // Se establece el ID.
ps.executeUpdate();
}

} catch (SQLException sqle) {


System.out.println("El proceso de base de datos ha fallado.");
System.out.println("Razón: " + sqle.getMessage());
} finally {
// Se cierran los recursos de base de datos.
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {

Desarrollo Rápido de Aplicaciones para Internet Pagina 24


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
System.out.println("El borrado no ha podido cerrar Statement.");
}
}

// Utilizar una sentencia preparada para consultar la tabla de


// base de datos que se ha creado y devolver datos desde ella. En
// este ejemplo, el parámetro utilizado se ha establecido de manera
arbitraria
// en 5, lo que implica devolver todas las filas en las que el campo ID
sea
// igual o menor que 5.
try {
ps = c.prepareStatement("SELECT * FROM
MYLIBRARY.MYTABLE " +
"WHERE ID <= ?");

ps.setInt(1, 5);

// Se ejecuta una consulta SQL en la tabla.


ResultSet rs = ps.executeQuery();
// Visualizar todos los datos de la tabla.
while (rs.next()) {
System.out.println("El empleado " + rs.getString(1) + " tiene el
ID " + rs.getInt(2));
}

} catch (SQLException sqle) {


System.out.println("El proceso de base de datos ha fallado.");
System.out.println("Razón: " + sqle.getMessage());
} finally {
// Se cierran los recursos de base de datos.
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar Statement.");
}

try {
if (c != null) {
c.close();
}
} catch (SQLException e) {
System.out.println("El borrado no ha podido cerrar
Connection.");
}

Desarrollo Rápido de Aplicaciones para Internet Pagina 25


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
}
}
}

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 26


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Unidad III: DISEÑO DE REPORTES EN JSP


4.1.9.Guía IX: DISEÑO DE UN REPORTE BASICO

Como primer paso iniciaremos la creación del Reporte con ayuda de


Ireport, para ello vaya al menú InicioTodos los
Programas/JasperSoft/Ireport 2.04/Ireport 2.0.4
Una vez estando en la ventana principal de Ireport diríjase al Menú
Fichero/Nuevo Documento… Aparecerá una ventana en la que configurará
el reporte, asegúrese de ponerle un nombre y el tamaño del papel, seleccione
la opción LETTER para tamaño carta. Y haga clic en OK. En la siguiente
imagen se muestra un formato en blanco y con divisiones, pero en este
ejemplo no utilizaremos todas, solo las cuatro principales (title,
pageHeader,detail y pageFooter), para desaparecer alguna sección haga
clic derecho sobre alguna de ellas y seleccione la opción Propiedades de
banda… Despues Coloque el valor 0 en la opción altura de banda y haga
clic en aplicar. Repita este proceso para la banda columnHeader,
columnFooter,lastPageFooter,summary y noData. A continuación,
estableceremos valores a las bandas restantes para acomodar la
información y las imágenes que contendrá, repita el proceso anterior, pero
ahora coloque los siguientes valores para cada una de ellas:

Title: 80
pageHeader: 30
detail: 260
y pageFooter: 55

4.1.10. Guía X: CONECTAR REPORTE CON UNA BASE DE DATOS

Una vez que ya tenemos nuestro reporte listo para ser configurado, debemos
empezar por indicarle a Ireport que campos vamos a mostrar, de igual
manera tendremos que establecer una conexión para probar nuestro reporte
para ello siga los siguientes pasos: 1. Vaya al menú
DatosConexiones/Fuentes de Datos o haga clic en el botón situado al final
de la barra de herramientas de Texto: 2. En la ventana Conexiones clic en
“Nuevo par…” 3. Aparecerá la ventana “Propiedades de Conexión” en la
cual tendrá que seleccionar “Conexión Base Datos JDBC” 4. Esta es la
última ventana que le aparecerá Coloque el nombre de la conexión, la URL
y el nombre de usuario junto con su password, puede hacer clic en el botón
prueba para ver el estado de su conexión si el test se efectúa con éxito haga
clic en salvar, de lo contrario compruebe que los datos que haya escrito
estén correctos. Una vez que nuestra conexión está hecha diríjase al menú
“”EDITAR””CONSULTA DE INFORME” y deshabilite la casilla ya que
esta opción le estará pidiendo su password a medida que escriba la consulta,
una vez que finalice la consulta habilítela para que recupere todos los
campos de la vista. Ahora proceda a escribir la consulta, en este ejemplo
escribiremos un SELECT sencillo que nos regresará todos los campos que
contiene la vista ordenados por ID:
select * from rep_per order by per_id_persona también notara que en la

Desarrollo Rápido de Aplicaciones para Internet Pagina 27


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
parte de abajo se encuentra la lista de todos los campos de la vista y además
el tipo de dato JAVA al que pertenece cada uno, utilice esta información
para los campos de texto, de esta manera sabe el nombre de cada campo y
el tipo primitivo de JAVA al que pertenece. Banda Title En esta banda
superior crearemos el encabezado del reporte como lo muestra la siguiente
figura, constará de un título, un subtítulo y dos imágenes, una en cada
extremo, además de una línea en la parte superior y otra en la inferior. Para
elaborarlo vaya a la barra de herramientas “Formatear elementos” Haga
clic en el botón imagen y dibuje un rectángulo donde aparecerá nuestro
primer logotipo que será en la parte izquierda, repita el proceso pero ahora
del lado derecho, no se preocupe porque no se vean imágenes aun, ya que
se las asignaremos en unos segundos, después inserte dos campos de “Texto
Estático” haciendo clic en el botón fíjese bien que sean estáticos y no
“Campos de texto” ya que estos tiene otra función y los utilizaremos hasta
la banda de detalles. Colóquelos de cómo muestra la figura representativa
a esta banda. ¡Revise respetar el espacio asignado para esa banda, este se
encuentra delimitado por unas líneas de color azul, y que de pasarse o
abarcar parte de otra banda Ireport nos lanzara un error al momento de la
compilación y no conseguiremos ejecutar nuestro reporte! Ya para acabar
el formato del encabezado agregue dos líneas, una en la parte superior y
otra en la parte inferior haciendo clic en el botón Por el momento la
apariencia de su titulo se vera más o menos así: Ahora haga doble clic sobre
los campos de texto y estos estarán listos para ser editados, escriba lo que
desee y presione ENTER para cerrar la edición, puede utilizar la barra de
herramientas “Formato de Texto”, para formatear el texto, solo seleccione
el campo de texto estático y utilice los botones que desee de esta barra: Para
insertar las imágenes de nueva cuenta haga doble clic sobre los objetos de
imágenes que coloco anteriormente, enseguida aparecerá un cuadro de
dialogo que le pedirá ubicar la imagen para ello haga clic en el botón buscar
y localícela (Acepta tipos GIF y JPG), Si es posible deje solo el nombre y la
extensión de la imagen, borre el resto de la ruta y coloque las imágenes en
la misma carpeta que se localiza el reporte, esto nos ayudara a no tener
conflictos en dado caso que la carpeta de donde jalamos las imágenes no
este disponible, además también evitara que busque en alguna otra ruta en
caso de que ejecutemos el reporte en otra maquina. Repita el proceso para
la otra Imagen. Y listo ahora tendremos el aspecto deseado.
Banda pageHeader Esta banda en realidad es el encabezado que tendrán el
resto de las paginas por si llega a generar mas de un reporte, ya que la
banda title solo la colocara el reporte en nuestra primera
hoja, para elaborar esta banda inserte dos “Campo estáticos”(para el titulo
del encabezado y
para el ID), una “línea”, además de un rectángulo y un “CAMPO DE
TEXTO” que ya se había mencionado anteriormente, este ultimo elemento
contendrá el ID de cada registro almacenado en la base de datos y será
llenado dinámicamente en tiempo de ejecución, para escribir los parámetros
que recibirá coloque $F{campo de la tabla} donde: $Findica que será un
campo se la tabla, si fuera un parámetro coloque $P, dentro de las llaves{}
coloque el nombre del campo de la tabla tal y como lo asigno al crear la
base de datos. Otra consideración a tener es el tipo de dato que contendrá

Desarrollo Rápido de Aplicaciones para Internet Pagina 28


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
ya que tanto como base de datos como reporte utilizan los tipos de datos de
JAVA, si su dato es VARCHAR en MySQL entonces asígnele un tipo STRING
de JAVA, para ello seleccione el campo haciendo un clic sobre el y vaya al
menú propiedadesCampo de texto y seleccione el tipo de dato
seleccionando una opción de la lista desplegable de la opción “Clase de
Expresión”, en este caso el ID es numérico por lo que deberá seleccionar el
tipo INTEGER. La edición de este tipo de campo también se activa haciendo
doble clic y en la ficha Expresión se escribe el formato antes mencionado:
$F{nombre_campo} La banda negra es solo un rectángulo relleno de color
negro, puede colocarlo o no según sus gustos y necesidades. Listo, nuestra
segunda banda esta ahora diseñada. No olvide respetar los espacios y
límites de cada banda

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4.1.11. Guía XI: Personalizar el detalle del Reporte

Desarrollo Rápido de Aplicaciones para Internet Pagina 29


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Banda detail Esta es nuestra banda principal porque tiene como función
principal mostrar todos los datos de nuestra tabla o VISTA como lo es en
este caso, para llenar puede ir insertando parejas de
campos “Estático” y ”Texto”, el estático será para poner los conceptos y el
de texto será el dato obtenido de la vista de la base de datos, para ello repita
los pasos anteriormente mencionados. Si lo hace de esta manera No olvide
colocar el tipo de dato de cada Campo de Texto. Y Recuerde Colocar el
nombre de la columna dentro de las llaves tal y como lo asigno en la Base
de datos.

Otra manera de hacerlo y mucho mas fácil es yendo al


panel ”Estructura del Documento” despliegue la
carpeta CAMPOS Seleccione el campo que desea
mostrar en el reporte y arrástrelo a la banda DETAIL,
arrastre todos los que desee a la banda y de esta
manera estará seguro que el nombre del campo y el
tipo se agregaran automáticamente, repita esta
operación para cada campo de texto.

Una vez que están todos los campos solo colóqueles un campo estático y
escríbale el mensaje o concepto asociado con cada campo de texto, por el
momento su apariencia deberá quedar más o menos así:

Desarrollo Rápido de Aplicaciones para Internet Pagina 30


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 31


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
4.1.12. Guía XII: Manejo de la Banda de Pie de Pagina
BANDA FOOTER
Para la elaboración de esta última banda puede seguir el diseño de este
manual o colocarle lo que desee esta banda fungirá como pie de pagina,
cabe destacar que también mostrara la fecha de creación del reporte y la
numeración de las hojas, para la fecha y los N de pagina dibuje tres campos
de textos, edítelos y escríbales la sig. Información:
Campo1: Fecha: new Date(): Colocara la fecha del sistema y la hora
Campo2: "Página " + $V{PAGE_NUMBER} + " de "Pagina Inicial
Campo3: "" + $V{PAGE_NUMBER}

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 32


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Unidad IV: Spring Framework


4.1.13. Guía XIII: CONCEPTOS SOBRE FRAMEWORKS

No hay duda de que Java es uno


de los lenguajes de programación
más usado , y por tanto, más
demandado en el mundo de la
programación. De acuerdo con
una encuesta realizada por
RebelLabs, encargada de realizar
encuestas a los usuarios de
Java, los frameworks más
importantes de este lenguaje son
los siguientes :

Este estudio está realizado por


Rebellabs basado 4 diferentes
fuentes como son Linkedin,
Github, búsquedas en Google y StackOverflow. Aquí tienes la fuente original
del estudio: "Java Web Frameworks Index".
En este artículo vamos a ahondar en los siete mejores frameworks de Java,
alternativas para no trabajar con código puro pero igualmente eficiente,
destacando los pros y los contras de cada uno de ellos para que la elección
del usuario sea la correcta.
Spring MVC
A pesar de ser un framework veterano (hace ya más de diez años de su
primera versión), sigue estando en lo más alto de la ola . Después de su
expansión al MVC (Modelo Vista Controlador), Spring siguió
evolucionando convirtiéndose en un framework de gran escala de Java para
las aplicaciones de Internet, ofreciendo a los ingenieros una poderosa
herramienta para el desarrollo de aplicaciones web, así como para
proyectos de seguridad. Siendo uno de los favoritos para los
programadores, ofrece una amplia gama de servicios: API REST, servicios
web SOAP, seguridad, etc. Otro de los beneficios es que existe una gran
comunidad de desarrolladores que trabajan con Spring y por lo tanto hay
una fuente enorme de documentación.

Pros y contras
Spring no se encuentra en el número 1 por cualquier razón. Estas son
las más destacadas:
 Inyección simplificada de datos de prueba mediante el uso de POJOs.
 Modularidad mejorada, lo que provoca una mejor legibilidad del código.
 Acoplamiento flexible entre los diferentes módulos.
 Inyección de dependencias con un uso flexible.
Aunque no podemos considerarlo un inconveniente, ya que existe una
gran cantidad, sí es cierto que Spring MVC quizás debería ser más fácil
de aprender para los desarrolladores novatos. A menudo se quejan de

Desarrollo Rápido de Aplicaciones para Internet Pagina 33


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
que la curva de aprendizaje al principio está demasiado empinada.
Algunas partes del código pueden estar poco documentadas y el
aprendizaje inicial se puede hacer dificultoso. Además, la información a
veces es diferente entre las versiones. A pesar de todo, la mayoría de los
ingenieros que trabajan con Java lo consideran uno de los mejores
frameworks, si no el mejor.

Recuerda que puedes aprende mucho más sobre Spring MVC en


el Curso Online en Español de Spring MVC que tenemos disponible en
nuestra suscripción mensual o anual. Haz click aquí para ir a ver el
contenido del curso de Spring MVC.

Struts 2
Otro de los principales frameworks de Java utilizados por gran parte de
los ingenieros de software más modernos es el sucesor de Apache Struts
1, su versión número dos. Este framework es todo un hallazgo para los
desarrolladores que construyen nuevas aplicaciones web con Java EE .
Apache ha entregado a estos un conjunto enorme de herramientas para
crear aplicaciones web orientadas a empresas optimizando el proceso de
desarrollo desde el inicio hasta el final y el mantenimiento posterior a la
entrada en funcionamiento. Struts 2 es la elección correcta si la web va a
tener una carga alta de datos, como puede ser una web de broadcast.

Pros y contras
Es un lujo no tener que implementar la clase Action, ya que está ya
incorporada. El código para configurar repeticiones ya no es necesario
porque los interceptores se ocupan de ello . Sin embargo, es posible que
no te decantes por este framework por una razón: muchos
desarrolladores no lo consideran suficientemente ágil para trabajar con
él.
Hibernate
El framework de mapeo de Java rompe con la impedancia del objeto-
relacional y con los problemas de desajuste sustituyendo accesos a
bases de datos de alto nivel . Hibernate está equipado con grandes
características que ayudan a los desarrolladores back-end a acceder a
los datos. Se trata de un framework ORM avanzado que permite realizar
la operación en la base de datos de objetos Java (entidades). Es un
concepto continuado que utiliza caché Hibernate para llevar los datos
del entorno Java a la base de datos.

Pros y contras
Hibernate permite comunicarse con cualquier base de datos utilizando
con las mínimas alteraciones del código reduciendo la brecha entre los
objetos y las palabras relacionales. Además:
 Oracle, DB2, MySQL o, Hibernate son independientes DB.
 Mecanismo de caché para buscar errores en bases de datos con
consultas similares.

Desarrollo Rápido de Aplicaciones para Internet Pagina 34


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
A pesar de las evidentes ventajas, Hibernate no permite múltiples
inserciones , evitando las consultas que hace JDBC. Tampoco está
recomendado este framework para proyectos de pequeña escala.

¿Quieres aprender mucho más sobre Hibernate? En el Curso Online de


Hibernate y JPA que tenemos disponible en nuestra suscripción podrás
aprender mucho más sobre el mapeo de objetos y la persistencia con
JPA. Haz en el siguiente enlace para ir a ver el contenido del curso de
Hibernate y JPA.

Vaadin
Este framework se convirtió en uno de los principales y más populares
para los desarrollos de aplicaciones de negocios . Utilizando un enfoque
basado en componentes conocidos, quita peso a los desarrolladores a la
hora de comunicar los cambios realizados al navegador. Un amplio
conjunto de componentes de interfaz de usuario, junto con diversos
widgets y controles, permite a los programadores crear aplicaciones
más que interesantes en muy poco tiempo.
Pros y contras
Haciendo el diseño en Java, HTML o ambos, Vaadin permite enlazar
datos utilizando el MVC o el MVP. Los drag and drop, unido a una gran
cantidad de características, hacen posible la fácil creación de Single
Page UIs con aplicación de Java . En el lado negativo, la lenta interfaz
de usuario para las aplicaciones móviles puede ser preocupante, ya que
Vaadin envía de vuelta cada evento al servidor.

Goggle Web Toolkit


GWT es otro marco libre de Java que permite a los programadores crear
y optimizar sofisticadas aplicaciones basadas en la web . El kit de
desarrollo de software GWT ofrece APIs Java y widgets básicos para la
construcción de aplicaciones compiladas después de aplicarles
JavaScript.

Pros y contras
Con Google Web Toolkit, se obtiene la base de código único (tanto en el
navegador como en el servidor de programación en Java) que f acilita
los procesos de desarrollo y depuración . La fácil complementación con
otras tecnologías permite a los programadores integrar widgets de GWT
en páginas web. La capacidad de personalizar widgets es otro aspecto
importante que puede ser creados con la ayuda de este framework. Sin
embargo, para un diseñador de páginas web, GWT no es el mejor
framework de Java por el que decantarse; no es recomendable para
aquellos que trabajan con HTML plano y pretenden incorporar más
tarde contenido dinámico.

Grails
Este particular framework web es considerado como una herramienta
dinámica que mejora la productividad de los ingenieros debido a sus
APIs , sus buenos valores por defecto, así como su convención sobre la

Desarrollo Rápido de Aplicaciones para Internet Pagina 35


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
configuración de paradigma. La perfecta integración de Java hace que
este sea uno de los frameworks mejor valorados por desarrolladores de
todo el mundo. Un conjunto de herramientas poderosas, tales como la
inyección de dependencia Spring-powered y diversos complementos, que
ofrecen todo lo necesario para crear modernas aplicaciones web.

Pros y contras
La rápida configuración de un nuevo proyecto y la plantilla ahorran
mucho tiempo para los desarrolladores . Además, cuenta con una gran
librería de plugins (más de 900) muy fáciles de instalar. A pesar de la
belleza de Grails, un framework Java de desarrollo full-stack, se trata de
un software que puede resultar demasiado pesado.

Como Elegir Un Framework


Elegir las herramientas adecuadas entre esta variedad de los
frameworks de Java más populares para el 2017 puede ser una tarea
engorrosa, ya que cada empresa se adhiere a sus propias ideas sobre la
web y la creación de aplicaciones móviles buscando la mejor opción. No
importa qué framework exacto vaya a utilizar, tenga en cuenta la
licencia, facilidad de instalación, la actividad del framework, la
documentación existente, etc. Dependiendo del tipo de proyecto, a veces,
es aconsejable tener todas las herramientas o varias de las que hemos
visto. Pero tiene más sentido trabajar con una sola herramienta para no
sobrecargar el proyecto con características que no son necesarias y que
lo único que hacen es ocupar espacio.

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 36


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 37


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

4.1.14. Guía XIV: Spring

Spring Framework
Spring ayuda a solventar este problema ya que cambia las responsabilidades y
en vez de que el propio desarrollador sea el encargado de generar los objetos
de cada uno de los frameworks es Spring basandose en ficheros xml o
anotaciones el encargado de construir todos los objetos que la aplicación va
a utilizar.

De esta manera al ser Spring el encargado de inicializar todos los objetos de


los distintos frameworks, es también el responsable de asegurarnos que se
integran de la forma correcta.

Spring y Código
Así pues es muy común encontrarse aplicaciones de Spring framework
con amplios ficheros XML que se encargan de inicializar los diferentes
objetos como se muestra a continuación.
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Desarrollo Rápido de Aplicaciones para Internet Pagina 38


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-
3.0.xsd">

<bean id="ServicioA" class="com.genbetadev.ServicioA">


<property name="mensaje" value="Hola GenBetaDev"/>
</bean>

<bean id="ServicioB" class="com.genbetadev.ServicioB">


<property name="mensaje" value="Hola GenBetaDev 2"/>
</bean>

</beans>

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 39


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

4.1.15. Guía XV: Precisiones sobre Frameworks

Spring es un framework para el desarrollo de aplicaciones y contenedor


de inversión de control, de código abierto para la plataforma Java.
La primera versión fue escrita por Rod Johnson, quien lo lanzó junto a la
publicación de su libro Expert One-on-One J2EE Design and
Development (Wrox Press, octubre 2002). El framework fue lanzado
inicialmente bajo la licencia Apache 2.0 en junio de 2003. El primer gran
lanzamiento fue la versión 1.0, que apareció en marzo de 2004 y fue seguida
por otros hitos en septiembre de 2004 y marzo de 2005. La versión 1.2.6 de
Spring Framework obtuvo reconocimientos Jolt Awards y Jax Innovation
Awards en 2006.34 Spring Framework 2.0 fue lanzada en 2006, la versión
2.5 en noviembre de 2007, Spring 3.0 en diciembre de 2009, y Spring 3.1
dos años más tarde.5El inicio del desarrollo de la versión 4.0 fue anunciado
en enero de 2013.6 La versión actual es la 5.0.
Si bien las características fundamentales de Spring Framework pueden ser
usadas en cualquier aplicación desarrollada en Java, existen variadas
extensiones para la construcción de aplicaciones web sobre la
plataforma Java EE. A pesar de que no impone ningún modelo de
programación en particular, este framework se ha vuelto popular en la
comunidad al ser considerado una alternativa, sustituto, e incluso un
complemento al modelo EJB (Enterprise JavaBean).

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

2. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

3. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

4. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 40


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
5. ______________________________________________________________________

______________________________________________________________________

______________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 41


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

4.1.16. Guía XVI: Spring Modules

¿Para que sirven los Spring Modules?


Todos utilizamos los Spring Modules en las
aplicaciones que desarrollamos utilizando
Spring framework . Otra cosa muy distinta es
que entendamos para que sirve cada módulo ya
que nos descargamos del framework a través
de Maven o Gradle . Si echamos un vistazo a
una carpeta que incluya todas los
jars descargados por Spring veremos algo
como lo siguiente:

¿Para que sirve cada uno de los jars que


aparecen? Vamos a comentar uno a uno.
Spring Modules y el contenedor
Spring Framework está compuesto de diversos módulos y cada uno de estos
módulos aporta una funcionalidad al framework. Los más importantes son
los que pertenecen a lo que se llama el Spring Core Container:

spring-core-X.X.X :Este módulo es el encargado de implementar el código


del IoC de Spring permitiendo inyectar beans etc.
spring-beans-X.X.X :Este módulo es el encargado de añadir las típicas
Factorías como BeanFactory, encargada de instanciar los distintos beans
registrados en el framework.
spring-context-X.X.X :Este módulo es el encargado de añadir un contexto
al framework y se encarga por ejemplo de simplificar la carga de los
distintos recursos. Es en este package en el que nos encontramos el interface
de ApplicationContext.
spring-context-support-X.X.X :Este módulo es el encargado de añadir las
clases que gestionan servicios complementarios como Cache ,Mail, Quartz
etc.
spring-expression-X.X.X :Este módulo es el encargado de añadir a Spring
su Expresion Language para poder usarlo en los ficheros xml o anotaciones.
Spring Modules y persistencia
Los módulos más utilizados después del core de Spring son los de acceso a
la capa de persistencia.

Desarrollo Rápido de Aplicaciones para Internet Pagina 42


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

spring-jdbc-X.X.X :Este módulo es el encargado de implementar el


sistema de plantillas JDBC para simplificar la máximo el código de acceso
a datos que utiliza este API.
spring-orm-X.X.X :Este módulo es el encargado de integrar JPA e
Hibernate dentro de Spring Framework
spring-messaging-X.X.X :Este módulo es el encargado de integrar en el
framework la funcionalidad de JMS.
spring-oxm-X.X.X :Este módulo es el encargado de integrar tecnologías
XML como por ejemplo JAXB dentro del framework.
Spring Modules y la Web
Otros de los módulos que se utilizan mucho son los relacionados con la
programación web y se agrupan de la siguiente forma:

spring-web-X.X.X :Este módulo es el encargado de integrar las


aplicaciones web con Spring framework. Es el caso de JSF o
antiguamente Struts.
spring-webmvc-X.X.X :Este módulo hace referencia a Spring MVC el
framework web propio de Spring para desarrollo de aplicaciones web
basadas en el modelo MVC.

Desarrollo Rápido de Aplicaciones para Internet Pagina 43


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
spring-portlets-X.X.X :Este módulo es el encargado de integrar Spring
con los sistemas de portales a través del desarrollo de tus propios Portlets.
spring-websockets-X.X.X :Este módulo es de reciente creación y se
encarga de aportar a Spring framework las capacidades de WebSocket a
nivel de servidor algo cada día más critico en HTML5.

Spring Modules y Aspect Oriented Programming


Los módulos más transversales de todos son los de
Programación Aspectual( AOP)

spring-aop-X.X.X: Este módulo es el encargado de aportar al framework


las capacidades core de programación aspectual. Para ello implemente
los interfaces y proxies necesarios.
spring-aspects-X.X.X: Este módulo hace referencia a los distintos
aspectos que el framework implementa por defecto como son los aspectos
de Cache y Transacciones.
Otros Módulos
Por último quedan otros dos módulos que comentar, no por ello menos
utilizados:
spring-instrument-X.X.X: Este módulo es el encargado de integrar
capacidades de control e instrumentación dentro de Spring Framework
utilizando Managed Bean para gestionar Spring vía JMX.
spring-test-X.X.X: Este módulo es el encargado del framework de Testing
que Spring incluye para poder desarrollar con TDD.
Como podemos ver existen muchos módulos pero al final la funcionalidad
de cada uno de ellos está bastante bien definida.

• Conclusiones o Ideas Fundamentales: (Anotar 5 Ítems como Mínimo)

1. ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

2. ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 44


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
3. ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

4. ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

5. ___________________________________________________________________

___________________________________________________________________

___________________________________________________________________

Desarrollo Rápido de Aplicaciones para Internet Pagina 45


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

Anexos
Anexo 1: Glosario
a) Blackboard: Empresa proveedora de una plataforma para estudios On Line que
promueve la gestión del aprendizaje en un entorno centralizado.

b) Sílabo: documento de planificación y organización que contiene la información de las


asignaturas: Presentación, Fundamentación, Competencias, Programación,
Metodología de Enseñanza, Medios y Materiales, Evaluación del Aprendizaje y
Bibliografía; con la finalidad de que el estudiante logre el aprendizaje que conlleve a
adquirir el perfil de egreso.

c) Crédito: el crédito académico es una medida del tiempo formativo exigido a los
estudiantes, para lograr aprendizajes teóricos y prácticos

d) Horas teóricas: horas de clases presenciales donde imparten conocimientos teóricos o


genéricos de la asignatura.

e) Horas prácticas: horas de clases presenciales donde se ejecutan habilidades y destrezas.

f) Clase o Sesión de aprendizaje: es el conjunto de estrategias de aprendizaje que utiliza el


docente para el desarrollo de una clase.

Desarrollo Rápido de Aplicaciones para Internet Pagina 46

También podría gustarte