Postgresql, JSP, XML, XSL

From: "Italo Osorio" <italo(at)aiias(dot)edu>
To: "Alvaro Herrera" <alvherre(at)dcc(dot)uchile(dot)cl>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Postgresql, JSP, XML, XSL
Date: 2004-04-30 06:08:27
Message-ID: 002b01c42e79$8d828c00$420aa8c0@sheraleepc
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hello Alvaro.

No es la primera vez que alguien me pregunta eso y el que siempre se
sorprende soy yo.

XML y XSL no es cosa nueva, es antiguo, ya esta biejo diria yo. El problema
de que muchos no conocen su poder y capacidad lo tienen las companias de
software que lo mustran como una moustrocidad dificil de entender y manejar.
Las mismas companias que crean los paradigmas de programacion que da como
resulatado usuarios adictos a softwares de desarrollo. Crees que a Microsoft
le conviene hacer propaganda que para desarrollar una web aplication no
tienes que comprar NADA!!!

Dejemos eso de lado que no es tema para esta lista, explicare con un ejemplo
muy reducido lo que hago con el PostgreSQL, JSP, XML y XSL.

Imagina que tienes una tabla llamada datos que solo tienen dos campos:
nombres, direccion. Para mostrar un listado del mismo se tienen que hacer lo
siguiente. ( se supone que tu postgres, jdbc todo lo demas esta funcionado
perfectamente)

1. Extraer el listado con el JSP medinate SQL, el JSP creara el XML.

----------------------show.jsp----------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="show.xsl"?>
<%@ page contentType="text/html" %>

<%
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
String COMANDO = "";
Class.forName(<postgres driver class>).newInstance();
conn=DriverManager.getConnection(<postgres connection>,<user>,<passwd>);
stmt = conn.createStatement();
%>

<datos>
<% COMANDO = "select "+
"nombre, "+
"direccion "+
"from data ";
rset = stmt.executeQuery(COMANDO);
while ( rset.next() )
{ %>
<contacto>
<nombre><%= rset.getString("nombre") %></nombre>
<direccion><%= rset.getString("direccion") %></direccion>
</contacto>
<% } %>
</datos>

<% conn.close(); %>
------------------------------------------------------

2. Lego hay que crear el XSL que sera quien "da formato" a la data del XML.

---------------------show.xsl----------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<head>
<title>Mi Primer XSL</title>
</head>
<body bgcolor="white">
<table border="0" cellspacing="1" cellpadding="0" align="CENTER">
<tr>
<td colspan="2" align="CENTER" class="titulo">
Lista de Contactos
</td>
</tr>
<xsl:apply-templates select="datos"/>
</table>
<hr />
</body>
</html>
</xsl:template>

<xsl:template match="datos">
<tr>
<th>Nombre</th>
<th>Dirección</th>
</tr>
<xsl:for-each select="contacto" >
<tr>
<td><xsl:value-of select="nombre" /></td>
<td><xsl:value-of select="direccion" /></td>
</tr>
</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

----------------------------------------

Si te das cuenta en la segunda linea del show.jsp encontraras esto:
<?xml-stylesheet type="text/xsl" href="show.xsl"?>
Cuando el IE o Nestcase o Mozilla (que pena pero opera no) cargan el XML
leen esta segunda linea y buscan al XSL que en este caso seria el "show.xsl"
y los "fucionan" y muestran al usuario el HTML que resulta del mismo.

Esto livera de muchas cosas.. pues en el JSP uno solo se preocupa de como
distribuir la data en formato XML "SOLO DATA", luego que se tienes eso se
trabaja con el XSL que usara esa data para mostrar.

En el tipico trabajo de JSP uno moscla data y HTML y cuando son proyectos
grandes se hace pesado todo eso. con XML y XSL uno separa las cosas: por un
lado solo Data y por otro lado presentacion.

Ahora el XSL tiene capacidades poderosas, puedes hacer un FOR, un IF, sort,
format numeros o texto, filtrar la data, etc, etc. todo lo que quieras para
mostrar tu data y lo mejor.. TODO ESTO LO HACE EL NAVEGADOR Y NO EL SERVER.

Pero lo mejor es que es GRATIS!!!!!! Bueno no es tan gratis, cuesta
aprender, pero tambien vale mucho aprender, pero seguro que es mucho mas
facil pagarle a microsoft que aprender.. :-)

Bueno espero haber despejado dudas.

Italo Osorio.

=+=+=+=+=+=+=+=+=+=+=+=+=+

----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)dcc(dot)uchile(dot)cl>
To: "Italo Osorio" <italo(at)aiias(dot)edu>
Cc: "Leonardo Boet Sánchez" <boet(at)gtm(dot)tel(dot)etecsa(dot)cu>;
<pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Thursday, April 29, 2004 7:01 AM
Subject: Re: [pgsql-es-ayuda] Seguridad en Postgres

> On Thu, Apr 29, 2004 at 02:34:42PM +0800, Italo Osorio wrote:
>
> > Lo que hago es que el JSP mediante JDBC se conecta al POSTGRESQL para
> > extraer la data con una peticion SQL, luego el JSP lo recibe y lo
formatea a
> > XML (es el mismo proceso para formatear a html) luego eso lo manda al
> > navegador quien usa el XML para crear HTML que sera lo que vera el
usuario
> > final.
>
> Una pregunta: el XML se lo pasas al browser directamente, o en tu
> servidor hay algo que lo transforma a HTML antes?
>
> Si le pasas el XML al browser, funciona con cualquier browser reciente?
>
> (el XML del que hablas es XHTML?)
>
> --
> Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
> A male gynecologist is like an auto mechanic who never owned a car.
> (Carrie Snow)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Martin Marques 2004-04-30 12:00:56 Re: Generar un consecutivo
Previous Message Italo Osorio 2004-04-30 05:43:31 Re: Actualizar a 7.4.2