tel./fax: +34 91 675 33 06 [email protected] - www ... · primero vamos a crear el proyecto en...

13
Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 [email protected] - www.autentia.com Somos su empresa de Soporte a Desarrollo Informático. Ese apoyo que siempre quiso tener... 1. Desarrollo de componentes y proyectos a medida Tecnología Desarrollo Sistemas Gran Empresa Producción autentia Certificación o Pruebas Verificación previa RFP Concurso Consultora 1 Consultora 2 Consultora 3 Equipo propio desarrollo Piloto 3a 3b 1. Definición de frameworks corporativos. 2. Transferencia de conocimiento de nuevas arquitecturas. 3. Soporte al arranque de proyectos. 4. Auditoría preventiva periódica de calidad. 5. Revisión previa a la certificación de proyectos. 6. Extensión de capacidad de equipos de calidad. 7. Identificación de problemas en producción. 3. Arranque de proyectos basados en nuevas tecnologías ¿Qué ofrece Autentia Real Business Solutions S.L? Para más información visítenos en: www.autentia.com Compartimos nuestro conociemiento en: www.adictosaltrabajo.com Gestor portales (Liferay) Gestor de contenidos (Alfresco) Aplicaciones híbridas Tareas programadas (Quartz) Gestor documental (Alfresco) Inversión de control (Spring) BPM (jBPM o Bonita) Generación de informes (JasperReport) ESB (Open ESB) Control de autenticación y acceso (Spring Security) UDDI Web Services Rest Services Social SSO SSO (Cas) Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery JPA-Hibernate, MyBatis Motor de búsqueda empresarial (Solr) ETL (Talend) Dirección de Proyectos Informáticos. Metodologías ágiles Patrones de diseño TDD 2. Auditoría de código y recomendaciones de mejora 4. Cursos de formación (impartidos por desarrolladores en activo)

Upload: others

Post on 27-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Avenida de Castilla,1 - Edificio Best Point - Oficina 21B28830 San Fernando de Henares (Madrid)

tel./fax: +34 91 675 33 [email protected] - www.autentia.com

Somos su empresa de Soporte a Desarrollo Informático.Ese apoyo que siempre quiso tener...

1. Desarrollo de componentes y proyectos a medida

TecnologíaDesarrolloSistemas

Gran Empresa

Producción

autentia

Certificacióno Pruebas

Verificación previa

RFP Concurso

Consultora 1

Consultora 2

Consultora 3

Equipo propio desarrolloPiloto

3a

3b

1. Definición de frameworks corporativos.2. Transferencia de conocimiento de nuevas arquitecturas.3. Soporte al arranque de proyectos.4. Auditoría preventiva periódica de calidad.5. Revisión previa a la certificación de proyectos.6. Extensión de capacidad de equipos de calidad.7. Identificación de problemas en producción.

3. Arranque de proyectos basados en nuevas tecnologías

¿Qué ofrece Autentia Real Business Solutions S.L?

Para más información visítenos en: www.autentia.com

Compartimos nuestro conociemiento en: www.adictosaltrabajo.com

Gestor portales (Liferay)Gestor de contenidos (Alfresco)Aplicaciones híbridas

Tareas programadas (Quartz)Gestor documental (Alfresco)Inversión de control (Spring)

BPM (jBPM o Bonita)Generación de informes (JasperReport)ESB (Open ESB)

Control de autenticación y acceso (Spring Security)UDDIWeb ServicesRest ServicesSocial SSOSSO (Cas)

Spring MVC, JSF-PrimeFaces /RichFaces, HTML5, CSS3, JavaScript-jQuery

JPA-Hibernate, MyBatisMotor de búsqueda empresarial (Solr)ETL (Talend)

Dirección de Proyectos Informáticos.Metodologías ágilesPatrones de diseñoTDD

2. Auditoría de código y recomendaciones de mejora

4. Cursos de formación (impartidos por desarrolladores en activo)

Page 2: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Home | Quienes Somos | Empleo | Foros | Tutoriales | Servicios Gratuitos | Contacte

Descargar este documento en formato PDF jspdin.pdf

Ejecución de JSP almacenado en una Base de Datos

Uno de los mensajes en nuestro foro, pregunta algo interesante: ¿Como interpretar código JSP almacenado en la base de datos?

Debemos entender la dinámica de los JSPs....

Un JSP posee normalmente HTML (aunque podríamos usarlo para generar XML, rdf, etc. ) y código Java (denominado Scriptlet). También podría contener, casi con toda seguridad si tenemos un conocimiento medio, etiquetas de usuario (custom tags) o de alguno de los conjuntos estándar (Struts, JSTL, etc..).

Cuando construimos un JSP, este se compila en un Servlet. Esta compilación no es compleja, pero no tiene sentido que nos pongamos a construir compiladores ..

Podemos revisar en Internet la documentación relativa a include de JSPs, por ejemplo en http://java.sun.com/products/jsp/syntax/1.1/syntaxref1112.html

De un modo sencillo, podemos incluir dinámicamente otro JSP, donde el nombre lo podemos obtener dinámicamente.

Si queremos ejecutar un JSP almacenado en la base de datos, solo tenemos que preocuparnos que ese JSP exista físicamente.

Una posible solución podría ser crear un Java Beans sencillo que nos permita generar el fichero físico (recuperándolo de la base de datos) al mismo tiempo que retorne un nombre de fichero único.

Vamos a hacerlo.. aunque con estas ideas y otro de nuestros tutoriales, donde os mostrábamos como construir una aplicación con JSPs, debería ser suficiente.

Contrucción del Ejemplo

Primero vamos a crear el proyecto en NetBeans (vamos deprisa porque en el tutorial mencionado podéis ver todas las capturas con más detalles).

Le asignamos un directorio de trabajo y usando el Wizard, decimos que el directorio sea un modulo Web

Tutorial desarrollado por:

Roberto Canales Mora 2003-2005 Creador de AdictosAlTrabajo.com y

Director General de Autentia S.L.

Recuerda que me puedes contratar para echarte una mano:

Desarrollo y arquitectura Java/J2EE Asesoramiento tecnológico Web

Formación / consultoría integrados en tu proyecto

No te cortes y contacta: 655 99 11 [email protected].

Curso Web J2EE Curso Avanzado en Desarrollo Web con J2EE

iQgen Software Generator Generate software based on open standards like XMI and JSP

JSP Tutorials JSP Made Easy With XMLSpy. Syntax & Editing Help, Free D/L.

XML to PDF in Java & J2EE Output PDF, PCL5, HTML in Java J2EE Websphere, Weblogic, Tomcat, Jetty.

Anuncios Goooooogle Anunciarse en este sitio

<jsp:include page="{relativeURL | <%= expression %>}" flush="true" />

Página 1 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 3: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Y seleccionamos nuestro trayecto

Ahora creamos nuestro JSP

Página 2 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 4: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Le asignamos un nombre

Creamos el Bean en un paquete

Página 3 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 5: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

le asignamos nombre

Y usamos el Wizard para crear el Bean

Página 4 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 6: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Le asignamos nombre

Añadimos nuestro método

Página 5 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 7: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Asignamos nombre, parámetros y valor de retorno

Modificamos el Java Bean (solo nos hace falta una línea), aunque nos sobra mucho código generado automáticamente ...

/* * beanjspdinamico.java * * Created on April 18, 2004, 1:02 PM */ package roberto;

Página 6 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 8: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Creamos en el directorio base un JSP estático para probar nuestra teoría y lo llamamos ficherodinamico1.jsp

Vemos como queda en la estructura de ficheros

import java.beans.*; /** * * @author Roberto Canales */ public class beanjspdinamico extends Object implements java.io.Serializable { private static final String PROP_SAMPLE_PROPERTY = "SampleProperty"; private String sampleProperty; private PropertyChangeSupport propertySupport; /** Creates new beanjspdinamico */ public beanjspdinamico() { propertySupport = new PropertyChangeSupport( this ); } public String getSampleProperty() { return sampleProperty; } public void setSampleProperty(String value) { String oldValue = sampleProperty; sampleProperty = value; propertySupport.firePropertyChange(PROP_SAMPLE_PROPERTY, oldValue, sampleProperty); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertySupport.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { propertySupport.removePropertyChangeListener(listener); } public String retornaJSPBBDD(int id) { return "ficherodinamico" + id + ".jsp"; } }

<% for (int i=0;i<5;i++) { %> <br> Si ves esto es que funciona <% } %>

Página 7 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 9: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Construimos nuestro JSP principal (gestordinamico.jsp)

Y vemos el resultado ....

<%@page contentType="text/html"%> <html> <head><title>JSP Page</title></head> <body> <jsp:useBean id="mibean" scope="session" class="roberto.beanjspdinamico" /> <center> <h1>Soy el JSP principal</h1> <jsp:include page="<%= mibean.retornaJSPBBDD(1) %>" flush="true" /> </center> </body> </html>

Página 8 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 10: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Es decir... ahora solo tenemos que modificar el código del método del JSP para que, en función del parámetro, recupere de la base de datos el texto que represente el JSP y lo escriba en un fichero físico....

Creamos la tabla en BBDD

Creamos la tabla en la base de datos (como casi siempre, jugamos con MySQL). Podeir revisar algunos de los tutoriales que tenemos que os ensaña como trabajar con Java y MySql

Creamos los campos

Le asignamos un nombre

Página 9 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 11: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Insertamos un registro en nuestra tabla

Modificamos el método del Bean.

Lo vamos a hacer del modo más simple, aunque no el más optimo ... (no usaremos pool de conexiones para no perder el objetivo). Tenéis varios tutoriales en este Web que os enseñan como configurar y utilizar pooles de conexiones .

Creamos un primer método auxiliar para recuperar el texto en base al ID del JSP dinámico en base de datos

Creamos una función se sea capaz de escribir el fichero

String ejecuta(String consultaGenerada) { String resultado = null; depura("Empezamos"); Connection con = null; // REGISTER DRIVER try { Driver d = (Driver)Class.forName("com.mysql.jdbc.Driver").newInstance(); depura("Recuperamos conexión"); con = DriverManager.getConnection("jdbc:mysql://localhost/test","",""); depura("Ejecutamos Statment"); java.sql.Statement stmt = con.createStatement(); depura("Ejecutamos sentencia " + consultaGenerada); ResultSet results = stmt.executeQuery(consultaGenerada); results.next(); return results.getString(1); } catch (Exception e) { System.out.println(e); e.printStackTrace(); } finally { try{ if (con != null) { con.close(); } }catch(Exception e){} } return resultado; }

void generaFichero(String nombreFichero, String contenido) { String pathbase = "c:\\ejemplos\\jspdin\\"; // esto se debe recuperar usando patrones de diseño try

Página 10 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 12: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Y por último, el propio método...

No se nos puede olvidar incluir en el directorio de librerías el driver JDBC de MySQL.

Con todo esto, ejecutamos y .....

Sencillo verdad ..... Os podéis descargar el código en este enlace ... listo para funcionar .

Yo también repasaría el tutorial donde os enseñábamos como ejecutar código java sin compilarlo (Añadir Scripting a programas Java ).... Este código también podría estar en base de datos.

Ya tenemos una posible base que nos incita a plantearnos como funcionan algunos gestores de contenidos ..... aunque esto .... es otra historia ....

Este ejemplo podría mejorarse optimizando el rendimiento con caches (para no generar cuando no sea necesario), construyendo una administración gráfica de los JSPs en base de datos (para saber cuando liberar caches), etc

Sobre el Autor ..

Si desea contratar formación, consultoria o desarrollo de piezas a medida puede contactar con

Autentia S.L. Somos expertos en:

{ FileWriter escritor = new FileWriter(pathbase + nombreFichero,false); escritor.write(contenido); escritor.close(); } catch(Exception e) { depura("Error al escribir fichero " + e); } }

public String retornaJSPBBDD(int id) { String resultado = retornaJSP(1); String nombreFichero = "ficherodinamico" + id + ".jsp"; depura (resultado); generaFichero(nombreFichero,resultado); return nombreFichero; } public String retornaJSP(int id) { return ejecuta("select jsp from jspdinamico where id = " + id); }

Página 11 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm

Page 13: tel./fax: +34 91 675 33 06 info@autentia.com - www ... · Primero vamos a crear el proyecto en NetBeans ... En este tutorial os enseñamos como crear un JSP, su relación con los

Patrocinados por enredados.com .... Hosting en Castellano con soporte Java/J2EE

J2EE, C++, OOP, UML, Vignette, Creatividad .. y muchas otras cosas

Otros Tutoriales Recomendados (También ver todos)

Nuevo servicio de notificaciones

Si deseas que te enviemos un correo electrónico cuando introduzcamos nuevos tutoriales, inserta tu dirección de correo en el siguiente formulario.

Subscribirse a Novedades

e-mail

Nombre Corto Descripción

Transformación de XML y XSL en JSPs

Os mostramos como poder utilizar XML y XSL en JSPS, combinado con el Patrón MVC

Creación avanzada de Tags con cuerpo

En este tutorial os mostramos como crear TAGs para JSP que gestionen el cuerpo.

Aplicaciones con JSPs Os mostramos como construir una aplicación con JSP que acceda a MySQL

Uso de JNDI, includes y cookies en Servlets

En este tutorial veremos como usar variables de entorno desde JNDI, incluir un servlet en otro (include) y como usar cookies en Servlets

Cachear porciones de JSPs En este tutorial os ensañamos como incrementar increiblemente el rendimiento de vuestro Web basado en tecnología JSP con el FrameWork de cache OSCACHE

JSP 2.0, JSTL y Lenguaje de expresiones

Os mostramos las novedades de JSP 2.0: Nuevas librerías estandar de etiquetas y el lenguaje de expresiones con ejemplos de acceso a base de datos, XML y XSL en JSP

Pool de Conexiones y Tomcat5 Os mostramos como instalar Tomcat5 en vuestro PC y como ejemplo de uso, configuramos un Pool de Conexiones y lo usamos contra MySQL

Struts Jakarta Cuando se ha trabajado creando aplicaciones Java poco a poco se va viendo la necesidad de normalizar los desarrollo. Uno de los Framework (entornos) más extendidos es Struts

JSP´s y Modelo-Vista-Controlador En este tutorial os enseñamos como crear un JSP, su relación con los servlets y como crear un ejemplo MVC en Tomcat

JDBC y MySql En el tutorial anterior vimos como instalar MySQL en Windows, ahora vamos a ver como acceder desde una aplicación Java.

Nota: Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento. Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores. En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que solicitarlo. Si alguien encuentra algún problema con la información publicada en este Web, rogamos que informe al administrador [email protected] para su resolución.

www.AdictosAlTrabajo.com Opimizado 800X600

Página 12 de 12

03/01/2006file://C:\DOCUME~1\COMPAQ~1\CONFIG~1\Temp\1TVU23E5.htm