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