20010703 Introducción a JSP y WML

672 views

Published on

Artículo publicado en el WMLClub en 2001 sobre la creación de páginas WML usando JSPs, para el desarrollo de aplicaciones WAP

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
672
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20010703 Introducción a JSP y WML

  1. 1. 1Publicado en el WMLClub en Enero de 2001ERICSSON GATEWAY 1.0Por Santiago Márquez SolísINTRODUCCION A JSP Y WMLContinuando con el estudio de la creación de páginas WML dinámicas y dejando delado por un momento la serie sobre los distintos gateways que comenzamos con elgateway de Ericsson, iniciamos el análisis de una tecnología que esta muy de moda enestos momentos debido fundamentalmente a su potencia y flexibilidad en el desarrollode páginas web dinámicas. Como suele suceder si es bueno para el desarrollo de páginasweb en general porqué no vamos a utilizarlo nosotros en nuestros proyectos y porqué novamos a hacer uso de las ventajas que nos reporta máxime si de lo que estamoshablando viene avalado por una de las mayores empresas de software y hardware queexisten actualmente a nivel mundial como es Sun Microsystems, de qué tecnologíaestamos hablando os preguntareis algunos, pues ni más ni menos que de JSP o JavaServer Pages. En este artículo vamos a ver los elementos fundamentales que constituyenlas páginas JSP así como sus características básicas, veremos también que ventajas nosaportan con respecto a su más directo competidor: las páginas ASP (Active ServerPages) de Microsoft a las cuales también dedicamos unas líneas en otro artículo y quepodéis consultar en la siguiente dirección: http://wmlclub.com/articulos/programaaspywml.htmOtro aspecto que también analizaremos será su integración con otro elemento muyimportante dentro de la actualmente llamada plataforma Java 2 como son los servlets y alos cuales ya dedicamos un artículo completo no hace mucho tiempo y al cual os remitoantes de iniciar vuestro viaje por el mundo de JSP ya que aunque no es necesario sabermucho sobre servlets para empezar a programar en JSP si es recomendable conocer almenos las ideas básicas que hay debajo de ellos para que todo lo que digamos sobre JSPen referencia a los servlets no resulte confuso. Si queréis acceder a este artículo podéishacerlo desde la siguiente dirección del club: http://wmlclub.com/articulos/servletsywml.htmY sin más preámbulos comencemos.1.- INTRODUCCIÓN A JSPLas páginas JSP o Java Server Pages es una tecnología desarrollada por SunMicrosystems como respuesta a la aparición de las páginas ASP (Active Server Pages)por parte de Microsoft (en la tabla 1 podemos ver las diferencias que existen entre una yotra tecnología). Una página JSP no es más que una página web normal y corriente quecontiene porciones de código en Java y porciones de código en HTML o en nuestro casoporciones de código en WML junto con otros elementos que proporcionan informaciónadicional al terminal en el que la página va a ser visualizada. Actualmente la versiónmás reciente que existe sobre JSP es la 1.2 pero se encuentra aun en fase de revisión por
  2. 2. 2lo que vamos a centrarnos en la versión estable de JSP que es la inmediatamenteanterior la 1.1. JSP ASPServidores web disponibles Internet Information Server Internet Information Server Apache Personal Web Server NetscapePlataformas HW Disponible en todas las Plataformas compatibles plataformas para las que con Win32 existe JavaUso de scripts Uso de JavaScript Uso de VBScript y JscriptSeguridad Modelo de seguridad de Modelo de seguridad Java basado en la arquitectura de NTAcceso a bases de datos A través de JDBC A través de ADO (Active Data Object)Personalización de tags Se puede ampliar a través No puede ampliarse del uso de libreriasTabla 1. Diferencias entre JSP y ASPLa tecnología JSP está muy relacionada con otra tecnología que comentábamos alprincipio, los servlets, tal es así que cuando nosotros estamos escribiendo una páginaJSP debemos de ser conscientes que cuando posteriormente veamos el resultado ennuestro terminal será debido a que un servlet estará generando dicho resultado. Portanto, si recordáis del articulo de los servlets, vimos que si queríamos hacer uso de ellosnecesitábamos de un componente adicional instalado en nuestro servidor web que fuesecapaz de manipular toda la lógica que dichos servlets implementaban, dicho de otromodo necesitábamos de un motor (engine) de servlets que se integrase de algún modocon nuestro servidor web a fin de que las peticiones hechas al servidor pudiesen serrecogidas por el servlet para generar la respuesta adecuada con JSP va a suceder lomismo, si queremos crear páginas JSP no nos queda más remedio que instalar junto connuestro servidor web un motor adicional que permita la ejecución de este tipo depáginas. El motor que vimos en aquel artículo sobre servlets, fue el JRun de Allaire ycomentamos en el tutorial que llevaba asociado la manera de instalarlo y configurarlopara un determinado servidor web y os redirijo a este tutorial si queréis saber más sobreJRun: http://wmlclub.com/tutoriales/instjrun.htmEl mayor inconveniente de JRun es que es un producto que requiere del pago delicencia para hacer uso de él en un entorno de desarrollo normal ya que el número deusuarios que admite la versión de evaluación es insuficiente para trabajar. Pero tambiéndijimos que existían otros motores que podíamos utilizar para nuestros desarrollos y
  3. 3. 3comentamos algo de un proyecto llamado Jakarta cuyo producto más destacado Tomcatseguía la línea marcada por Java, es decir, la de ser gratuito y en este caso servirnostotalmente como motor para la ejecución sin que la funcionalidad del mismo se vea poreste hecho disminuida de ninguna manera. Os redirijo a la página sobre Tomcat dentrodel club para aquellos que queráis saber más sobre este programa:Independientemente del motor que decidáis instalar en vuestro servidor web lo quesiempre sucede cuando se realiza una solicitud para visualizar una página JSP es losiguiente: el motor de JSP compila la página JSP que hayamos solicitado y la convierteen un servlet el cual al ejecutarse será el que genere la respuesta en el terminal. Esteproceso de compilación se realiza siempre y cuando el servlet asociado a la página noexista o en caso de existir el contenido del fichero JSP no haya cambiado desde que secreo el servlet, el encargado de generar el fichero .java correspondiente a la página JSPy que será el fuente para generar el servlet, es un elemento dentro del motor de JSP querecibe el nombre de contenedor JSP. De este modo posteriores llamadas a la páginaJSP no generan nuevas compilaciones y el rendimiento del sistema aumentaconsiderablemente, además al estar basado en servlets se pueden aprovechar todas lascaracterísticas que de estos ya conocemos.El enlace entre una páginas JSP y su correspondiente servlet se realiza mediante dosclases contenidas dentro del paquete javax.servlet.jsp (fijaros que es una clase dentro deun paquete destinado a la manipulación de servlets), estas dos clases son JSPPage yHttpJspPage que son las clases que nos permitirán crear la interfaz de la JSP compiladao dicho de otro modo del servlet, el cual a diferencia de un servlet normal de los que yavimos los métodos que debe de implementar son los siguientes: jspInit(), jspDestroy y_jspService(HttpServletResponse,HttpServletRequest), la finalidad de estos métodos essimilar a los de un servlet normal, es decir, inicialización, destrucción y determinacióndel tipo de servicio que se llama por parte del cliente, es decir, post, get, etc.2.- ELEMENTOS BASICOS DE LAS PÁGINAS JSPUna vez visto las características básicas necesarias para comprender el funcionamientode las páginas JSP vamos a continuación a analizar los distintos elementos que podemosencontrarnos dentro de ellas, para posteriormente ver algunos ejemplos de integracióncon WML.En los siguientes puntos vamos a ir viendo los aspectos más importantes sobre JSP quedebemos conocer antes de poder elaborar nuestra primera página.2.1.- ALCANCE DE LOS OBJETOS JSPAntes hemos dicho que una página JSP no es más que un fichero de texto (y cuyaextensión es .jsp) en cuyo interior hacemos uso de determinados elementos para generaruna respuesta en el terminal del cliente, estos elementos en su mayoría son vistos por elmotor de JSP como objetos y como tales objetos tienen un alcance o duración durante lacual van a ser accesibles. Estos alcances (scope) son de cuatro tipos diferentes. - De página (page): Los objetos que se declaran a este nivel son solo accesibles dentro de la página en la cual fueron creados. Las referencias de
  4. 4. 4 los objetos creados con alcance de página se almacenan en otro objeto denominado pagecontext. - De petición (request): En este caso los objetos declarados a este nivel son accesibles por todas las páginas que van a procesar la misma petición (request). Las referencias creadas sobre estos objetos se almacenan en el objeto request. - De sesión (session): Los objetos con alcance de sesión son accesibles por todas aquellas páginas que están procesando peticiones dentro de la misma sesión en la cual el objeto fue creado. Las referencias de los objetos creados se almacenan dentro del objeto session. - De aplicación (application): Es el nivel más alto en el sentido en que los objetos creados a este nivel son accesibles por todas las páginas que procesan peticiones dentro de la misma aplicación. Las referencias se almacenan en el objeto applicationFijaros que cada uno de los niveles anteriores implica un mayor grado de visibilidadpara los diferentes objetos que creemos, esto es muy importante a tener en cuanta sobretodo cuando estemos desarrollando páginas JSP que estén compuesta por múltiplespáginas, muchos errores se deben a estar tratando de acceder a objetos que están fuerandel alcance de la ejecución de la página actual.2.2.- ELEMENTOS DE LAS PAGINAS JSPToda página JSP se compone de dos elementos básicos que más adelante describiremosdetenidamente: las directivas (directives) y las acciones (actions). Las directivas seutilizan para proporcionan información global a la página JSP, es decir, sirven paraestablecer determinados valores que son válidos independientemente de las peticionesque la página reciba, estos valores se utilizan para indicar al motor como debe generar lapágina. Las directivas siguen una sintaxis similar a la siguiente: <%@ nombre de la directiva %>Por el contrario las acciones dependen de las peticiones que se estén efectuando sobre lapágina JSP y en función de estas realizar un proceso u otro como puede ser la creaciónde un determinado tipo de objeto, ejecutar otra página JSP, etc. Las acciones van ligadasa la ejecución de terminadas etiquetas las cuales pueden ser nativas de JSP o por elcontrario creadas por nosotros mismos mediante un mecanismo de extensión deetiquetas que viene definido dentro de JSP. Las acciones tienen una sintaxis comosigue: <etiqueta atributo=”valor”>Adicionalmente a estos dos tipos de elementos en JSP se incluye como elementoadicional los elementos de script (script elements) los cuales a su vez se dividen endeclaraciones, scriptlets y expresiones. Las declaraciones se utilizan para declararelementos validos en el lenguaje de script y que pueden ser accedidos por otroselementos de script, tienen una sintaxis similar a la siguiente: <%! Declaracion %>
  5. 5. 5Los scriptlets son acciones que se ejecutan como respuesta a una petición ygeneralmente es código en Java que se encierra entre los caracteres <% y %>. Porejemplo un fragmento de un scriptlet podría ser algo similar a lo siguiente: <% out.println(“Hola”); %>Este mini-scriptlet lo que haría sería retorna la cadena “Hola” en el terminal del cliente.Finalmente las expresiones son al igual que sucede en otros lenguajes operaciones quepueden ser evaluadas y que devuelven un determinado valor, en JSP se utiliza la sintaxissiguiente para retornar el valor de una expresión: <%= Expresion %>Si os fijáis en los ejemplos anteriores todos los elementos que forman parte de JSP seencierran dentro de los caracteres <% y %>.2.3.- COMENTARIOSEn JSP existen dos tipos de comentarios que podemos utilizar en nuestras páginas yque debemos de saber diferenciar. Por un lado tenemos el comentario típico que seutiliza para documentar el código que vamos escribiendo y que no se envía a losterminales clientes, este tipo de comentario sigue la siguiente sintaxis: <%-- comentario %>Y por otro lado tenemos los comentarios que si son enviados al terminal cliente comoparte de la página y cuya sintaxis es: <!-- comentario -->2.4.- DESCRIPCION DE LAS DIRECTIVASEn este punto vamos a ver que directivas nos proporciona JSP y como podemosutilizarlas. Antes vimos que una directiva no era más que información para el motor deJSP para que este en función de los valores de la directiva generase la página de unmodo u otro. En JSP se definen tres tipos diferentes de directivas que debemos conocer:las directivas de página, las directivas de inclusión de ficheros y la directiva de libreríade etiquetas. 1.- Directiva de página (page directive): Se usa para definir atributos que seaplican a una página JSP entera así como a cualquier fichero estático que se incluya conla directivas include" o <jsp:include>. Las directivas page no se aplica sobre ficherosdinámico incluidos (cuando veamos un poco más adelante la directiva includeexplicaremos la diferencia entre un fichero estático y otro dinámico para JSP). Lasintaxis que presenta la directiva page es similar a la siguiente:
  6. 6. 6 <%@ page atributo=”valor” %>Como normal general de utilización de esta directiva podemos decir que se puedeespecificar más de una vez en una página JSP aunque por norma general su situaciónsiempre suele estar al comienzo del fichero. Existe una regla que debemos conocer y esque si bien podemos situar varias directivas page a lo largo de una página JSP como yahemos dicho, no podemos asignar diferentes valores para el mismo atributo más queuna sola vez, salvo en el caso del atributo import el cual dado que su semántica essimilar al import de java si que se nos deja usarlo (darle distintos valores) para losficheros que queramos importar.Los atributos más importantes que la directiva page permite establecer son los que semuestran a continuación: language="java": Define el lenguaje de script usado tanto en los scriptles, como en las declaraciones y expresiones del fichero JSP y de cualquier fichero incluido. Actualmente en la especificación 1.0 de JSP el único lenguaje permitido es Java por lo que este atributo tendrá siempre este valor. session="true|false": Sirve para indicar la disponibilidad del objeto session para un cliente. El valor por defecto es true. buffer="none|8kb|sizekb": Se utiliza para indicar el tamaño del buffer (siempre en kilobytes) que se utilizará por el objeto out para manejar la salida enviada desde la página JSP compilada hasta el navegador cliente. El valor por defecto es 8kb, aunque podemos indicar ningún valor (none) o un valor cualquiera. import= "{ package.class | package.* }, ...": Con este atributo indicamos una lista (separada por comas) de uno o más paquetes o clases que el fichero JSP debería importar. De esta manera las clases importadas pueden ser utilizadas por los scriptlets, expresiones, declaraciones y etiquetas del fichero JSP. autoFlush="true|false" : Mediante el autoFlush podemos indicar si la salida será enviada o no cuando el buffer de salida esté lleno. Por defecto, el valor es true, con lo que el buffer será descargado, si especificamos false, se lanzará una excepción cuando el buffer se sobrecargue y que deberemos de tratar. isThreadSafe="true|false" : Indica si la seguridad de threads (hilos) está implementada (soportada) en el fichero JSP. Por defecto el valor asociado a este atributo es el de true lo que significa que el motor puede enviar múltiples solicitudes concurrentes a la página o dicho de otro modo varios threads pueden acceder a la página JSP y por lo tanto se hace necesario sincronizar nuestros métodos para proporcionar seguridad de threads. info="text" : Este atributo nos permite especificar una cadena de texto que es incorporada en el página JSP compilada, posteriormente podemos recuperar el esta cadena con el método getServletInfo() (revisar el artículo sobre servlets que ya vimos).
  7. 7. 7 contentType="mimeType; charset=characterSet “: Se utiliza para indicar el tipo de contenido que se envia como respuesta al cliente así como el juego de caracteres utilizado. errorPage="Url" : Sirve para indicar un fichero que se encargara de manipular las excepciones que se produzcan. isErrorPage="true|false" : Se utiliza para indicar si el fichero JSP va a mostrar o no una página de error. Si el valor que toma este atributo es true, significa que podemos usar el objeto exception el cual si recordáis del mundo Java contiene una referencia a la excepción lanzada. El valor por defecto es false. 2.- Directiva de inclusión de ficheros (include directive): Sirve para incluirficheros dentro de la página JSP cuando esta es traducida a un servlet. La sintaxis quepresenta esta directiva es la siguiente: <%@ include file="url relativa del fichero a incluir" %>El contenido del fichero incluido puede ser HTML estático, elementos de script, otrasdirectivas o incluso acciones. Es interesante llegados a este punto hacer una distinciónentre includes estáticos y dinámicos en JSP. Un include estático significa que el textodel fichero incluido se añade al fichero JSP como si fuera parte del mismo. Por elcontrario un include dinámico siempre actúa sobre la solicitud de llamada al mismo, demanera que el fichero dinámico se procesa y el resultado es lo que es incluido en lapágina desde la que se llama. 3.- Directiva de librería de etiquetas (tablib directive): Mediante este tipo dedirectiva se puede ampliar el conjunto de etiquetas que el interprete de JSP es capaz deentender de manera que la funcionalidad del mismo sea prácticamente ilimitada. Lasintaxis de esta directiva es la siguiente: <%@ taglib uri=”url” %>El atributo uri especifica la ruta donde se encuentra el fichero que implementa lasnuevas etiquetas.2.5.- DESCRIPCION DE LAS ACCIONESLo primero que hay que decir sobre las acciones es que hay que tener cuidado con lasmayúsculas y las minúsculas ya que se diferencia entre un tipo y otro de carácter. Lasacciones dijimos que serian el elemento que se encargan de controlar el funcionamientodel motor JSP y se establecen mediante el siguiente conjunto de etiquetas: jsp:include,jsp:useBean, jsp:setProperty, jsp:getProperty, jsp:forward y jsp:plugin. Veamos endetalle el significado de cada acción anterior:
  8. 8. 8 Acción jsp:include: Sirve para insertar ficheros en una página que está siendo generada en el mismo momento en que la página es solicita y no cuando la página se transforma en servlet. La síntaxis de esta acción es la siguiente: <jsp:include page="url" flush="true" /> El atributo page se corresponde con la nueva página a incluir, mientras queflush siempre debe aparecer como true para indicar que se el vaciado del buffer delectura de la nueva página. Acción jsp:plugin: Esta acción nos permite insertar un elemento OBJECT o EMBED específico del navegador utilizado aunque en nuestro caso y para WML no tiene mucho sentido hacer uso de este tipo de acción, por lo menos de momento. Acción jsp:forward: Sirve para reenviar la petición a otra página que se especifica en el único atributo (page) que esta acción contiene. La sintaxis es la siguiente: <jsp:forward page="nueva URL" /> Acción jsp:getProperty: Sirve para recuperar el valor de una propiedad de un bean que ha sido creado con la acción jsp:useBean. Para usar esta acción debemos indicar el bean a usar (atributo name) y la propiedad que queremos recuperar (atributo property), la sintaxis es como sigue: <jsp:getProperty name=”nombre del bean” property=”propiedad a recuperar”/> Acción jsp:setProperty: Sirve para establecer el valor de una propiedad de un bean que ha sido creado con la acción jsp:useBean. Para usar esta acción debemos indicar el bean a usar (atributo name), la propiedad que queremos establecer (atributo property) y el valor de la misma (atributo value), la sintaxis es como sigue: <jsp:setProperty name=”nombre del bean” property=”propiedad a recuperar” value=”valor”/> Accion jsp:useBean: Esta acción nos permite cargar y utilizar un JavaBean en la página JSP. El síntaxis para indicar el Bean a usar: <jsp:useBean id="name" class="package.class" /> Con la sintaxis anterior lo que estamos haciendo es crear un objeto de la claseespecificada y asociarlo a la variable cuyo id estamos estableciendo. Para establecer ymodificar los valores de las propiedades de los beans podemos hacer uso dejsp:setproperty y jsp:getproperty.
  9. 9. 92.6.- OBJETOS INTEGRADOS EN JSPAl igual que sucedía en ASP disponemos de una serie de objetos que se encuentranintegrados dentro de JSP y que van a sernos muy útiles para acceder a determinadaspropiedades que de otra manera no tendríamos. Estos objetos los tenéis en la siguientetabla así como una pequeña explicación sobre su finalidad.OBJETO Se corresponde con el HttpServletRequest asociado con la petición, y nos va a permitir acceder a laRequest siguiente información: los parámetros que se pasan con la petición, para ello haremos uso del método getParameter,, el tipo de petición, es decir, si es un get, un post, etc y las cabeceras HTTP como son las cookies.Response Se corresponde con el HttpServletResponse asociado con la respuesta al cliente. Es el PrintWriter usado para envíar la salida al cliente. El uso de out se aplica casi siempre en scriptletsout ya que las expresiones JSP obtienen un lugar en el stream de salida, y por eso raramente se refieren explícitamente a out.session. Este es el objeto HttpSession asociado con la petición.application Se corresponde con el ServletContext obtenido mediante getServletConfig().getContext().config Este es el objeto ServletConfig para la página.Tabla 2. Objetos integrados en JSP3.- EJEMPLOSVisto los elementos que pueden constituir una página JSP el siguiente punto en quevamos a detenernos es en ver algunos ejemplos que muestren como se puede integraresta tecnología dentro de una aplicación WML.El primer ejemplo que vamos a desarrollar en JSP va a ser algo tan simple comomostrar en la pantalla de nuestro terminal el mensaje “Hola Mundo desde JSP”. Paraello el código que debemos de introducir es el siguiente: <%@ page contentType="text/vnd.wap.wml" %> <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="Principal" title="Principal"> <p><b><u>Hola Mundo desde JSP </u></b></p> </card> </wml>Hay varias cosas importantes en el ejemplo anterior que debemos de considerar y quevan a ser una constante por cada programa que desarrollemos. En primer lugar fijarosque la primera línea de la que consta el programa es una llamada a la directiva page
  10. 10. 10indicando el tipo de contenido que se va a generar como salida hacia el cliente, fijarosque estamos indicando que será información de texto asociada a las extensiones .wap,.wml y .vnd. Si obviamos esta línea obtendremos el clásico error de Content-Type errorque ya muchos de vosotros conocéis. Una vez escrito el código anterior debéis degrabarlo como fichero de texto con extensión .jsp y un aspecto importante que no debéisolvidar es que al hacer la llamada al nombre del fichero debemos de diferenciar entremayúsculas y minúsculas, ya que de lo contrario el motor de JSP que genera el servletdirá que no encuentra el fichero, por ejemplo, si hemos guardado el programa anteriorcon el nombre de “uno.jsp” dentro de la ruta de ejemplos de Tomcat en el directorio desamples en una nueva carpeta llamada wap, la llamada que tendremos que hacer parapoder visualizar la página sería la siguiente: http://máquina:8080/examples/jsp/wap/uno.jspDonde máquina es el nombre del host que alberga la página. Fijaros que se hace unallamada al puerto 8080 en vez de al puerto 80 que es el puerto Http por excelencia, estoes así porque estamos haciendo uso de Tomcat y éste por defecto queda esperandopeticiones en este puerto.El aspecto que presenta el programa anterior ejecutado sobre el UP de Phone es elsiguiente (figura 1): Figura 1. Primer programa JSP
  11. 11. 11Veamos otro ejemplo un poco más complejo y que consiste en la representación dentrode nuestro terminal de la hora del sistema junto con algunos datos sobre la fecha, parahacer esto tenemos el siguiente código JSP:<%@ page contentType="text/vnd.wap.wml" %><%@ page session="false"%><?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN""http://www.wapforum.org/DTD/wml_1.1.xml"><wml> <card id="Principal" title="Principal"> <jsp:useBean id=clock scope=page class=dates.JspCalendartype="dates.JspCalendar" /> <p>Dia: <jsp:getProperty name="clock" property="dayOfMonth"/></p> <p>Año: <jsp:getProperty name="clock" property="year"/></p> <p>Mes: <jsp:getProperty name="clock" property="month"/></p> <p>Hora: <jsp:getProperty name="clock" property="time"/></p> </card></wml>Igual que antes almacenamos este fichero con la extensión .jsp. Si os fijáis en el códigoveréis que en este caso estamos haciendo uso del atributo session a parte del atributocontentType de la directiva page, el objetivo en este caso es que el programa no tengaacceso al objeto Session que se encuentra disponible desde JSP. Por otro lado, parapoder acceder a los atributos de la fecha y de la hora lo que hacemos es indicar quevamos a hacer uso de la clase dates.JspCalendar la cual implementa las característicasque andamos buscando, para ello tenemos que hacer uso de la acción jsp:useBeanindicando el objeto nuevo que vamos a crear y que queda identificado por el valorid=’clock’ (cuidado con esto, hacemos uso de las comillas simples y no dobles). Paraacceder a las propiedades del objeto clock que hemos definido hacemos uso de la acciónjsp:getProperty, de manera que el resultado final que obtenemos es el que podéisapreciar en la figura 2: Figura 2. Fechas desde JSP
  12. 12. 12Otro ejemplo más, hasta ahora en los ejemplos anteriores hemos visto la utilización dealgunos elementos importantes que antes habíamos explicado, siguiendo con estodijimos que dentro de JSP podíamos acceder a una serie de objetos predefinidos, en elsiguiente ejemplo vamos a ver el uso del objeto request para obtener información sobrela conexión que estamos efectuando, protocolos, puertos, etc. El código podría ser algosimilar al siguiente:<%@ page contentType="text/vnd.wap.wml" %><?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN""http://www.wapforum.org/DTD/wml_1.1.xml"><wml> <card id="Principal" title="Principal"> <p><strong><u> Objeto Request</u></strong></p> <p>Tipo de JSP Request: <%= request.getMethod() %></p> <p>URI del Request: <%= request.getRequestURI() %></p> <p>Protocolo: <%= request.getProtocol() %></p> <p>Ruta del Servlet: <%= request.getServletPath() %></p> <p>Query string: <%= request.getQueryString() %></p> <p>Longitud del Content: <%= request.getContentLength() %></p> <p>Content type: <%= request.getContentType() %></p> <p>Nombre del Servidor: <%= request.getServerName() %></p> <p>Puerto: <%= request.getServerPort() %></p> <p>Usuario: <%= request.getRemoteUser() %></p> <p>Direccion Remota: <%= request.getRemoteAddr() %></p> <p>Nombre de Host Remoto: <%= request.getRemoteHost() %></p> <p>User-Agent: <%= request.getHeader("User-Agent") %></p> </card></wml>Y donde el resultado lo tenemos en la figura 3: Figura 3. Acceso al objeto Request
  13. 13. 13CONCLUSIONESBien nuestro viaje por el mundo de las páginas JSP toca a su fin, espero que todo lo quehemos ido viendo en los distintos puntos de este artículo sirva para aclarar vuestrasideas sobre qué se puede hacer con JSP y cómo hacerlo, también espero que hayaservido de introducción clara para todos vosotros que conociendo el mundo Java yWML nunca hayáis fundido ambas tecnologías por lo que JSP es una buena manera deempezar debido a que los resultados obtenidos compensan con creces el esfuerzo deaprendizaje. Como suelo hacer cuando finalizo un artículo os animo a que hagáisvuestras propias pruebas e intentéis llevar a JSP hasta el máximo de sus posibilidades yaque de este modo lograreis los mejores resultados. Y por mi parte nada más nos vemosen la próxima.Santiago Márquez Solís

×