Existen muchas tecnologias para crear paginas de WWW dinamicas, es decir, con
acceso a base de datos o con una logica incorporada.
La tecnologia CGI es la base para procesar peticiones de WWW. Basicamente tiene
como filosofia usar protocolo HTTP.
La interfaz de usuario esta basada en HTML (auxilidad de JavaScript para dar
la posibilidad de tener una interfaz mas dinamica)
Dentro de las filosofias de programacion de un CGI, se tiene que:
+ Programar completamente todo el sistema en un lenguaje de programacion.
Inclusive la generacion de paginas se hace con instrucciones y bibliotecas
del lenguaje usado. Por ejemplo, en el caso de los servlets, la generacion
de la pagina se tiene que poner en el codigo.
+ Incorporar en una pagina HTML, segmentos de codigo. JSP es un ejemplo, donde
se puede disennar una pagina HTML y colocar segmentos de codigo Java. Un JSP es entonces la combinacion de HTML con Java, su nombre de JavaServer Pages indica
que las paginas de WWW son generadas en el servidor o contenedor de componentes de WWW.
Un JSP se acaba generando a codigo Java y es finalmente un servlet, pero permite
separar el dise~no de una pagina HTML de la logica de progamacion.
1. Primer JSP
Siempre que se interactue con un componente de WWW, se debe tener en cuenta dos
perspectivas.
Programador. Que codifica y ensambla componentes de WWW. Debe crear un
componente de WWW que tipicamente se aloja en un directorio y en el puede
crear
+ Paginas HTML puro
+ Paginas JSP
+ Guardar imagenes u otro tipo de archivos
+ Tiene un directorio denominado WEB-INF que contiene
+ Un archivo web.xml, que sirve para configurar componentes de WWW
tipo servlets
+ Un directorio classes, donde se guardan las clases de los servlets
+ Un directorio lib, donde se almacenan archivos JAR que auxilian tanto
a los servlets y JSP
Por ejemplo, desde NetBeans se puede crear un componente de WWW, indicando
New->JSP & Servlets->Web Module e indicando el directorio que contendra toda
la infraestructura de componentes de WWW. Se recomienda poner una carpeta que
se llama jsp, para seguir ejemplos posteriores
Al crearlo debe generar un subdirectorio
jsp/
WEB-INF/
classes/
lib
web.xml
Al mismo nivel del directorio WEB-INF se pueden crear archivos html, png,
jsp
Primero crear el siguiente archivo (New->JSP & Servlets->HTML File) y
denominarlo index.html (sin extension) y debe tener el siguiente contenido
Primer JSP
Luego crear el componente JSP (New->JSP & Servlets->JSP) denominado Hello
<%@page contentType="text/html"%>
JSP Page
<% out.println("Hola mundo JSP"); %>
El codigo anterior muestra dos instrucciones JSP combinadas con HTML
<%@page ...%> Directiva JSP que permite indicar que el contenido de la pagina
es de tipo HTML.
<%out. %> Directiva que permite ejecutar codigo Java. Utiliza un objeto
predefinido, out, que permite imprimir en la pantalla del navegador de WWW
una cadena de caracteres.
En si JSP consiste en incorporar ciertas directivas que son instrucciones que acaban generando codigo Java.
La otra perspectiva de los componentes de WWW es de quien los configura e
instala en un servidor de aplicaciones.
Para liberar un componente de WWW se puede hacer bajo 2 filosofias. La primera
se debe usar cuando el componente esta completamente probado. La segunda y que es la que se explica, se usa para ir probando gradualmente el componente.
Se debe editar, apartir del directorio donde TomCat esta instalado, el archivo
conf/server.xml (dicho archivo permite agregar el Contexto de un componente de WWWW)
Se debe agregar antes de la linea que dice
Al guardar este archivo, se debe arrancar el servicio de TomCat (si estaba
activo, se debe primero bajar)
Al concluir el arranque de TomCat, este ejemplo se puede probar tecleando
http://localhost:8080/index.html
Y seleccionar la liga que indica
Primer JSP
2. Incorporar Clases de Java.
Cualquier clase de Java puede ser importada a un JSP.
El siguiente ejemplo, fecha.jsp, usa la clase java.util.Date y la clase
java.text.DateFormat
<%@page contentType="text/html"%>
<%@page import="java.util.*,java.text.*"%>
JSP Page
<%
Date hoy = new Date();
String sHoy = DateFormat.getDateInstance().format(hoy);
%>
Hoy es <%=sHoy %>
Aqui se incluyen las siguientes directivas JSP
<%@page import="... %> - permite incluir paquetes Java, separados por coma
<% Date hoy ....%> - permite incorporar codigo Java para generar la
fecha de hoy en formato texto
<%= sHoy %> imprime en la pantalla del navegador,como cadena de caracteres,
el contenido de la variable sHoy.
Para probar esta clase, solo basta con poner
http://localhost:8080/fecha.jsp
No es necesario dar de baja al servidor TomCat
3. Resumen de directivas
Toda directiva de JSP es puesta entre las banderas de <% %>
<%@ page ... %> - Permite configurar las instrucciones de inicio de la pagina
(cargar paquetes, generar tipo de pagina)
<%@ include %> - permite incluir otra pagina HTML o JSP
<%! %> - permite declarar una propiedad de la pagina JSP, se puede tratar como
una variable global. Tambien se pueden declarar metodos
<%= %> - Se evalua la expresion Java (puede ser una variable o invocacion a un
metodo) y se convierte a cadena de caracteres
<% %> - denominado scriplet, permite incluir fragmentos de codigo Java
<%-- --%> - comentario del JSP
El siguiente codigo muestra el uso de las directivas aqui expresadas (llamarlo
directivas.jsp)
<%@page contentType="text/html"%>
JSP Page
<%@ include file="incluir.html" %>
<%! int i=0; %>
Iniciando con valor i de <%= i %>
Generando un ciclo, usando un scriptlet
<% for (i=i+1;i<10;i++) { %>
Valor de i es <%= i %>
<% } %>
Para que el codigo funcione, se debe generar un archivo que se llama
incluir.html
este texto se incluye del archivo incluir.html
4. Formas HTML y JSP.
Una forma HTML es una interfaz de captura basada en componentes como
botones, listas, checkbox.
Una forma HTML se usa colocando la instruccion
Aqui se indica que al momento de enviar los datos de la forma, se utilice
la directiva POST del protocolo HTTP y que ejecute el programa script.jsp
Dicho programa se encarga de leer el contenido de la forma y manipularlo
para su posterior procesamiento
5. JSP y JavaBeans
JSP permite que se incorpore un componente JavaBean no visual