fbpx
Wikipedia

JavaServer Pages

JavaServer Pages (JSP) es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML y XML, entre otros tipos de documentos. JSP es similar a PHP, pero usa el lenguaje de programación Java.

ManchaServer Pages:EME
Parte de página web dinámica
Información general
Tipo de programa formato de archivo
Autor Sun Microsystems
Desarrollador Sun Microsystems
Licencia
  • Eclipse Public License 2.0
  • GPL linking exception
Información técnica
Programado en Java
Plataformas admitidas Java EE
Versiones
Última versión estable 2.3
Enlaces
Sitio web oficial
Repositorio de código

Para desplegar y correr JavaServer Pages, se requiere un servidor web compatible con contenedores servlet como Apache Tomcat o Jetty.

TagLibs -> JSP -> Servidor Aplicaciones (Servlets) -> Cliente (Navegador)

El rendimiento de una página JSP es el mismo que tendría el servlet equivalente, ya que el código es compilado como cualquier otra clase Java. A su vez, la máquina virtual compilará dinámicamente a código de máquina las partes de la aplicación que lo requieran. Esto hace que JSP tenga un buen desempeño y sea más eficiente que otras tecnologías web que ejecutan el código de una manera puramente interpretada.

La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de propósito general que excede el mundo web y que es apto para crear clases que manejen lógica de negocio y acceso a datos de una manera prolija. Esto permite separar en niveles las aplicaciones web, dejando la parte encargada de generar el documento HTML en el archivo JSP.

Otra ventaja es que JSP hereda la portabilidad de Java, y es posible ejecutar las aplicaciones en múltiples plataformas sin cambios. Es común incluso que los desarrolladores trabajen en una plataforma y que la aplicación termine siendo ejecutada en otra.

Los servlets y Java Server Pages (JSPs) son dos métodos de creación de páginas web dinámicas en servidor usando el lenguaje Java. En ese sentido son similares a otros métodos o lenguajes tales como el PHP, ASP o los CGIs, programas que generan páginas web en el servidor. Sin embargo, se diferencian de ellos en otras cosas.

Para empezar, los JSPs y servlets se ejecutan en una máquina virtual Java, lo cual permite que, en principio, se puedan usar en cualquier tipo de ordenador, siempre que exista una máquina virtual Java para él. Cada servlet (o JSP, a partir de ahora lo usaremos de forma indistinta) se ejecuta en su propio hilo, es decir, en su propio contexto; pero no se comienza a ejecutar cada vez que recibe una petición, sino que persiste de una petición a la siguiente, de forma que no se pierde tiempo en invocarlo (cargar programa + intérprete). Su persistencia le permite también hacer una serie de cosas de forma más eficiente: conexión a bases de datos y manejo de sesiones, por ejemplo.

Las JSPs son en realidad una forma alternativa de crear servlets ya que el código JSP se traduce a código de servlet Java la primera vez que se le invoca y en adelante es el código del nuevo servlet el que se ejecuta produciendo como salida el código HTML que compone la página web de respuesta.

Descripción

JSP puede ser visto como una abstracción de alto nivel de los servlets Java. Las JavaServer Pages son traducidas a servlets en tiempo real; cada servlet es guardado en caché y reusado hasta que la JSP original es modificada. Dicho en otras palabras las JSP son páginas java para un ambiente web.

Ejemplo de documento JSP

Ejemplo de código de una página JSP:

<%@ page errorPage="myerror.jsp" %> <%@ page import="com.foo.bar" %> <html> <head> <%! int serverInstanceVariable = 1;%><%! int localStackBasedVariable = 1;%>
JSP 

Ejemplo de una compilación o "salida" JSP:

package jsp_servlet; import java.util.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import com.foo.bar; //importado como resultado de <%@ page import="com.foo.bar" %> import … class _myservlet implements javax.servlet.Servlet, javax.servlet.jsp.HttpJspPage { //insertado como //resultado de <%! int serverInstanceVariable = 1;%> int serverInstanceVariable = 1; … public void _jspService( javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response ) throws javax.servlet.ServletException, java.io.IOException { javax.servlet.ServletConfig config = ...;//obtener la configuración del servlet Object page = this; PageContext pageContext = …;//obtener el contexto de la página para esta petición javax.servlet.jsp.JspWriter out = pageContext.getOut(); HttpSession session = request.getSession( true ); … 

Para ejecutar las páginas JSP, se necesita un servidor Web con un contenedor Web que cumpla con las especificaciones de JSP y de Servlet. Tomcat 5 es una completa implementación de referencia para las especificaciones Java Servlet 2.2 y JSP 1.1.

Sintaxis

Variables implícitas

Las páginas JSP incluyen ciertas variables privilegiadas sin necesidad de declararlas ni configurarlas:

Variable Clase
pageContext javax.servlet.jsp.PageContext
request javax.servlet.http.HttpServletRequest
response javax.servlet.http.HttpServletResponse
session javax.servlet.http.HttpSession
config javax.servlet.ServletConfig
application javax.servlet.ServletContext
out javax.servlet.jsp.JspWriter
page java.lang.Object
exception java.lang.Exception

Directivas

Son etiquetas a partir de las cuales se genera información que puede ser utilizada por el motor de JSP. No producen una salida visible al usuario sino que configura cómo se ejecutará la página JSP.

Su sintaxis es:

 <%@ directiva atributo="valor" %> 

Las directivas disponibles son:

  • include: Incluye el contenido de un fichero en la página mediante el atributo file.
<%@ include file="cabecera.html" %>
  • taglib: Importa bibliotecas de etiquetas (Tag Libraries)
<%@ taglib uri="/tags/struts-html" prefix="html" %>
  • page: Especifica atributos relacionados con la página a procesar. Los atributos son:
Atributo Sintaxis Utilización
import <%@ page import="class; class" %> Importa clases y paquetes Java para ser utilizadas dentro del fichero JSP.
session <%@ page session="false" %> Especifica si utiliza los datos contenidos en sesión; por defecto "true".
contentType <%@ page contentType="class; class" %> Especifica el tipo MIME del objeto "response"; por defecto "text/html; charset=ISO-8859-1".
buffer <%@ page buffer="12KB" %> Buffer utilizado por el objeto writer "out"; puede tomar el valor de "none"; por defecto "8KB".
errorPage <%@ page errorPage="/path_to_error_page" %> Especifica la ruta de la página de error que será invocada en caso de producirse una excepción durante la ejecución de este fichero JSP.
isErrorPage <%@ page isErrorPage="true" %> Determina si este fichero JSP es una página que maneja excepciones. Únicamente a este tipo de páginas pueden acceder a la variable implícita "exception", que contiene la excepción que provocó la llamada a la página de error.

Declaraciones

Nos permiten declarar variables, funciones y datos estáticos.

 <%! int maxAlumnosClase = 30; %> 

Scriptlets

Los scriptlets son partes de código Java incrustadas entre los elementos estáticos de la página....

 <% ... código Java ... %> 

Expresiones

Las expresiones se evalúan dentro de la servlet. No deben acabar en ";".

 <%= maxAlumnosClase + 1%> 

El siguiente ejemplo pondría como título de la página el atributo "titulo" contenido en el objeto request:

 <% String titulo = ""; if (request.getAttribute("titulo") != null) { titulo = (String) request.getAttribute ("titulo"); }  %> ... <title><%=titulo%></title> .... 

Etiquetas

Etiquetas JSP para simplificar el código y dar mayor funcionalidad.

Desarrollar sitios web utilizando etiquetas presenta ciertas ventajas como:

  • facilitar el aprendizaje.
  • facilitar el mantenimiento.
  • fomentar la modularidad y la reutilización.
  • simplificar el código y reducir el número de líneas necesarias.

Su sintaxis sería:

 <%@ taglib uri="/taglib/lycka" prefix="lycka" %> ... <lycka:hola/> ... 

A la hora de generar el código Java de la Servlet, esta etiqueta hola será interpretada por el Servidor de Aplicaciones como perteneciente a la biblioteca de etiquetas (Tag Library) lycka. Esta biblioteca estará identificada en el fichero descriptor de nuestra aplicación (web.xml) con el nombre de recurso (URI) /taglib/lycka.

 <taglib-uri>/taglib/lycka</taglib-uri> <taglib-location>/WEB-INF/tags/lycka.tld</taglib-location> 

Una implementación de este fichero descriptor, /WEB-INF/tags/lycka.tld podría ser:

 <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>simp</shortname> <uri>http://www.hachisvertas.net/jcs/taglibs/lycka</uri> <info>A simple sample tag library</info> <tag> <name>hola</name> <tagclass>org.lcyka.taglibs.miEtiqueta</tagclass> <bodycontent>empty</bodycontent> <info>Alaba la belleza de mi gata.</info> </tag> </taglib> 

Y por fin, el servidor de aplicaciones sustituirá la etiqueta por su código Java asociado, org.lcyka.taglibs.miEtiqueta:

 package org.lcyka.taglibs; import ...; public class miEtiqueta extends TagSupport { public int doStartTag { try { pageContext.getOut().print("Mi gata es preciosa"); } catch (IOException ioe) { } return SKIP_BODY; } 

Y finalmente el navegador mostraría:

 Mi gata es preciosa 

Etiquetas JSP

Son las etiquetas pertenecientes a la especificación JSP. Proporcionan una funcionalidad básica.

Un primer grupo de etiquetas proporciona funcionalidad a nivel de la página de una manera muy simple:

  • <jsp:forward>, redirige la request a otra URL
  • <jsp:include>, incluye el texto de un fichero dentro de la página
  • <jsp:plugin>, descarga un plugin de Java (una applet o un Bean).

Un segundo grupo permite manipular componentes JavaBean sin conocimientos de Java.

  • <jsp:useBean>, permite manipular un Bean (si no existe, se creará el Bean), especificando su ámbito (scope), la clase y el tipo.
  • <jsp:getProperty>, obtiene la propiedad especificada de un bean previamente declarado y la escribe en el objeto response.
  • <jsp:setProperty>, establece el valor de una propiedad de un bean previamente declarado.

Etiquetas JSTL

Son proporcionadas por Sun dentro de la distribución de JSTL.

  • core, iteraciones, condicionales, manipulación de URL y otras funciones generales.
  • xml, para la manipulación de XML y para XML-Transformation.
  • sql, para gestionar conexiones a bases de datos.
  • i18n, para la internacionalización y formateo de las cadenas de caracteres como cifras.

Etiquetas Struts TagLib

Distribuidas por para funcionar junto con el Framework de Struts.

  • PHP
  • Bean
  • HTML
  • Logic
  • Nested
  • vjgp

Etiquetas personalizadas

Anteriormente hemos visto un ejemplo para crear una etiqueta personalizada almacenada en nuestra propia biblioteca de etiquetas.

Para desarrollar etiquetas personalizadas, utilizaremos la API de las bibliotecas de etiquetas (Tag Libraries).

La API de las Servlet de Java es:

 javax.servlet.* 

La API de JSP extiende de esta API,

 javax.servlet.jsp.* 

Finalmente, la API de las bibliotecas de etiquetas (Tag Libraries) extiende de esta última,

 javax.servlet.jsp.tagext.* 

Lo más relevante de esta API son:

  • Las interfaces
    • Tag, que todas las etiquetas deben implementar.
    • BodyTag, extiende a la anterior y define métodos adicionales para inspeccionar el cuerpo de una etiqueta.
  • Las clases
    • BodyContent, un manejador (handler) para leer y escribir en el cuerpo de una etiqueta.
    • BodyTagSupport, que implementa la interfaz BodyTag.
    • TagAttributeInfo, para obtener la información de los atributos de la etiqueta declarados en el TLD.
    • TagData, que contiene los valores de los atributos.
    • TagExtraInfo, para especificar información extra de una etiqueta, como las variables que introduce en el código o los atributos que serán validados.
    • TagInfo, basado en la información de la TLD.
    • TagLibraryInfo, representa la información de una TLD.
    • TagSupport, implementa la interfaz Tag.
    • VariableInfo, contiene información como el tipo y ámbito de las variables creadas o modificadas por la etiqueta.

Podemos encontrar una descripción más detallada en http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/jsp/tagext/package-summary.html

Otro ejemplo de etiqueta podría ser el siguiente código Java:

 package org.lycka.taglibs; import ...; public class LowerCaseTag extends BodyTagSupport { public int doAfterBody() throws JspException { try { BodyContent body = getBodyContent(); JspWriter writer = body.getEnclosingWriter(); String bodyString = body.getString(); if ( bodyString != null ) { writer.print( bodyString.toLowerCase()); } } catch(IOException ioe) { throw new JspException("Error: IOException while writing to the user"); } return SKIP_BODY; } } 

Al encontrar el inicio de la etiqueta, el runtime primero se invocará el método doStart() una vez instanciada la clase. Puede devolver uno de los siguientes valores:

  • SKIP_BODY, no procesa el contenido del cuerpo de la etiqueta.
  • EVAL_BODY_INCLUDE , evalúa el cuerpo de la etiqueta.
  • EVAL_BODY_TAG , evalúa el cuerpo de la etiqueta y lanza el resultado a otro stream almacenado en una propiedad de la etiqueta.

El método doAfterBody() después de procesar el cuerpo de la etiqueta.

Finalmente se invocará el método doEndTag(). Puede devolver:

  • EVAL_PAGE, para seguir procesando la página JSP
  • SKIP_PAGE, para dejar de procesar la página JSP, para por ejemplo redirigir la página

Declarado en el descriptor de la biblioteca como

 <tag> <name>lowercase</name> <tagclass>org.lycka.taglibs.LowerCaseTag</tagclass> <bodycontent>JSP</bodycontent> <info>Put body in lowercase.</info> </tag> 

Utilizado en la página JSP

 <%@ taglib uri="/taglib/lycka" prefix="lycka" %> ... <lycka:lowercase>Esto es un EJEMPLO</lycka:lowercase> 

Y su salida sería

 esto es un ejemplo 

Véase también

Enlaces externos

  • Sun Microsystem
  • Página oficial de JSP
  • Apache
  •   Datos: Q183169
  •   Multimedia: Jakarta Server Pages

javaserver, pages, tecnología, ayuda, desarrolladores, software, crear, páginas, dinámicas, basadas, html, entre, otros, tipos, documentos, similar, pero, lenguaje, programación, java, manchaserver, pages, emeparte, página, dinámicainformación, generaltipo, pr. JavaServer Pages JSP es una tecnologia que ayuda a los desarrolladores de software a crear paginas web dinamicas basadas en HTML y XML entre otros tipos de documentos JSP es similar a PHP pero usa el lenguaje de programacion Java ManchaServer Pages EMEParte de pagina web dinamicaInformacion generalTipo de programaformato de archivoAutorSun MicrosystemsDesarrolladorSun MicrosystemsLicenciaEclipse Public License 2 0GPL linking exceptionInformacion tecnicaProgramado enJavaPlataformas admitidasJava EEVersionesUltima version estable2 3EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata Para desplegar y correr JavaServer Pages se requiere un servidor web compatible con contenedores servlet como Apache Tomcat o Jetty TagLibs gt JSP gt Servidor Aplicaciones Servlets gt Cliente Navegador El rendimiento de una pagina JSP es el mismo que tendria el servlet equivalente ya que el codigo es compilado como cualquier otra clase Java A su vez la maquina virtual compilara dinamicamente a codigo de maquina las partes de la aplicacion que lo requieran Esto hace que JSP tenga un buen desempeno y sea mas eficiente que otras tecnologias web que ejecutan el codigo de una manera puramente interpretada La principal ventaja de JSP frente a otros lenguajes es que el lenguaje Java es un lenguaje de proposito general que excede el mundo web y que es apto para crear clases que manejen logica de negocio y acceso a datos de una manera prolija Esto permite separar en niveles las aplicaciones web dejando la parte encargada de generar el documento HTML en el archivo JSP Otra ventaja es que JSP hereda la portabilidad de Java y es posible ejecutar las aplicaciones en multiples plataformas sin cambios Es comun incluso que los desarrolladores trabajen en una plataforma y que la aplicacion termine siendo ejecutada en otra Los servlets y Java Server Pages JSPs son dos metodos de creacion de paginas web dinamicas en servidor usando el lenguaje Java En ese sentido son similares a otros metodos o lenguajes tales como el PHP ASP o los CGIs programas que generan paginas web en el servidor Sin embargo se diferencian de ellos en otras cosas Para empezar los JSPs y servlets se ejecutan en una maquina virtual Java lo cual permite que en principio se puedan usar en cualquier tipo de ordenador siempre que exista una maquina virtual Java para el Cada servlet o JSP a partir de ahora lo usaremos de forma indistinta se ejecuta en su propio hilo es decir en su propio contexto pero no se comienza a ejecutar cada vez que recibe una peticion sino que persiste de una peticion a la siguiente de forma que no se pierde tiempo en invocarlo cargar programa interprete Su persistencia le permite tambien hacer una serie de cosas de forma mas eficiente conexion a bases de datos y manejo de sesiones por ejemplo Las JSPs son en realidad una forma alternativa de crear servlets ya que el codigo JSP se traduce a codigo de servlet Java la primera vez que se le invoca y en adelante es el codigo del nuevo servlet el que se ejecuta produciendo como salida el codigo HTML que compone la pagina web de respuesta Indice 1 Descripcion 2 Ejemplo de documento JSP 3 Sintaxis 3 1 Variables implicitas 3 2 Directivas 3 3 Declaraciones 3 4 Scriptlets 3 5 Expresiones 3 6 Etiquetas 3 6 1 Etiquetas JSP 3 6 2 Etiquetas JSTL 3 6 3 Etiquetas Struts TagLib 3 6 4 Etiquetas personalizadas 4 Vease tambien 5 Enlaces externosDescripcion EditarJSP puede ser visto como una abstraccion de alto nivel de los servlets Java Las JavaServer Pages son traducidas a servlets en tiempo real cada servlet es guardado en cache y reusado hasta que la JSP original es modificada Dicho en otras palabras las JSP son paginas java para un ambiente web Ejemplo de documento JSP EditarEjemplo de codigo de una pagina JSP lt page errorPage myerror jsp gt lt page import com foo bar gt lt html gt lt head gt lt int serverInstanceVariable 1 gt lt int localStackBasedVariable 1 gt JSP Ejemplo de una compilacion o salida JSP package jsp servlet import java util import java io import javax servlet import javax servlet http import javax servlet jsp import javax servlet jsp tagext import com foo bar importado como resultado de lt page import com foo bar gt import class myservlet implements javax servlet Servlet javax servlet jsp HttpJspPage insertado como resultado de lt int serverInstanceVariable 1 gt int serverInstanceVariable 1 public void jspService javax servlet http HttpServletRequest request javax servlet http HttpServletResponse response throws javax servlet ServletException java io IOException javax servlet ServletConfig config obtener la configuracion del servlet Object page this PageContext pageContext obtener el contexto de la pagina para esta peticion javax servlet jsp JspWriter out pageContext getOut HttpSession session request getSession true Para ejecutar las paginas JSP se necesita un servidor Web con un contenedor Web que cumpla con las especificaciones de JSP y de Servlet Tomcat 5 es una completa implementacion de referencia para las especificaciones Java Servlet 2 2 y JSP 1 1 Sintaxis EditarVariables implicitas Editar Las paginas JSP incluyen ciertas variables privilegiadas sin necesidad de declararlas ni configurarlas Variable ClasepageContext javax servlet jsp PageContextrequest javax servlet http HttpServletRequestresponse javax servlet http HttpServletResponsesession javax servlet http HttpSessionconfig javax servlet ServletConfigapplication javax servlet ServletContextout javax servlet jsp JspWriterpage java lang Objectexception java lang ExceptionDirectivas Editar Son etiquetas a partir de las cuales se genera informacion que puede ser utilizada por el motor de JSP No producen una salida visible al usuario sino que configura como se ejecutara la pagina JSP Su sintaxis es pre style overflow x auto lt directiva atributo valor gt pre Las directivas disponibles son b include b Incluye el contenido de un fichero en la pagina mediante el atributo file lt include file cabecera html gt dd b taglib b Importa bibliotecas de etiquetas Tag Libraries lt taglib uri tags struts html prefix html gt dd b page b Especifica atributos relacionados con la pagina a procesar Los atributos son Atributo Sintaxis Utilizacionimport lt page import class class gt Importa clases y paquetes Java para ser utilizadas dentro del fichero JSP session lt page session false gt Especifica si utiliza los datos contenidos en sesion por defecto true contentType lt page contentType class class gt Especifica el tipo MIME del objeto response por defecto text html charset ISO 8859 1 buffer lt page buffer 12KB gt Buffer utilizado por el objeto writer out puede tomar el valor de none por defecto 8KB errorPage lt page errorPage path to error page gt Especifica la ruta de la pagina de error que sera invocada en caso de producirse una excepcion durante la ejecucion de este fichero JSP isErrorPage lt page isErrorPage true gt Determina si este fichero JSP es una pagina que maneja excepciones Unicamente a este tipo de paginas pueden acceder a la variable implicita exception que contiene la excepcion que provoco la llamada a la pagina de error Declaraciones Editar Nos permiten declarar variables funciones y datos estaticos pre style overflow x auto lt int maxAlumnosClase 30 gt pre Scriptlets Editar Los scriptlets son partes de codigo Java incrustadas entre los elementos estaticos de la pagina pre style overflow x auto lt codigo Java gt pre Expresiones Editar Las expresiones se evaluan dentro de la servlet No deben acabar en pre style overflow x auto lt maxAlumnosClase 1 gt pre El siguiente ejemplo pondria como titulo de la pagina el atributo titulo contenido en el objeto request pre style overflow x auto lt String titulo if request getAttribute titulo null titulo String request getAttribute titulo gt lt title gt lt titulo gt lt title gt pre Etiquetas Editar Etiquetas JSP para simplificar el codigo y dar mayor funcionalidad Desarrollar sitios web utilizando etiquetas presenta ciertas ventajas como facilitar el aprendizaje facilitar el mantenimiento fomentar la modularidad y la reutilizacion simplificar el codigo y reducir el numero de lineas necesarias Su sintaxis seria pre style overflow x auto lt taglib uri taglib lycka prefix lycka gt lt lycka hola gt pre A la hora de generar el codigo Java de la Servlet esta etiqueta hola sera interpretada por el Servidor de Aplicaciones como perteneciente a la biblioteca de etiquetas Tag Library lycka Esta biblioteca estara identificada en el fichero descriptor de nuestra aplicacion web xml con el nombre de recurso URI taglib lycka pre style overflow x auto lt taglib uri gt taglib lycka lt taglib uri gt lt taglib location gt WEB INF tags lycka tld lt taglib location gt pre Una implementacion de este fichero descriptor WEB INF tags lycka tld podria ser pre style overflow x auto lt xml version 1 0 encoding ISO 8859 1 gt lt DOCTYPE taglib PUBLIC Sun Microsystems Inc DTD JSP Tag Library 1 1 EN a rel nofollow class external free href http java sun com j2ee dtds web jsptaglibrary 1 1 dtd http java sun com j2ee dtds web jsptaglibrary 1 1 dtd a gt lt taglib gt lt tlibversion gt 1 0 lt tlibversion gt lt jspversion gt 1 1 lt jspversion gt lt shortname gt simp lt shortname gt lt uri gt a rel nofollow class external free href http www hachisvertas net jcs taglibs lycka http www hachisvertas net jcs taglibs lycka a lt uri gt lt info gt A simple sample tag library lt info gt lt tag gt lt name gt hola lt name gt lt tagclass gt org lcyka taglibs miEtiqueta lt tagclass gt lt bodycontent gt empty lt bodycontent gt lt info gt Alaba la belleza de mi gata lt info gt lt tag gt lt taglib gt pre Y por fin el servidor de aplicaciones sustituira la etiqueta por su codigo Java asociado org lcyka taglibs miEtiqueta pre style overflow x auto package org lcyka taglibs import public class miEtiqueta extends TagSupport public int doStartTag try pageContext getOut print Mi gata es preciosa catch IOException ioe return SKIP BODY pre Y finalmente el navegador mostraria Mi gata es preciosa Etiquetas JSP Editar Son las etiquetas pertenecientes a la especificacion JSP Proporcionan una funcionalidad basica Un primer grupo de etiquetas proporciona funcionalidad a nivel de la pagina de una manera muy simple lt jsp forward gt redirige la request a otra URL lt jsp include gt incluye el texto de un fichero dentro de la pagina lt jsp plugin gt descarga un plugin de Java una applet o un Bean Un segundo grupo permite manipular componentes JavaBean sin conocimientos de Java lt jsp useBean gt permite manipular un Bean si no existe se creara el Bean especificando su ambito scope la clase y el tipo lt jsp getProperty gt obtiene la propiedad especificada de un bean previamente declarado y la escribe en el objeto response lt jsp setProperty gt establece el valor de una propiedad de un bean previamente declarado Etiquetas JSTL Editar Son proporcionadas por Sun dentro de la distribucion de JSTL core iteraciones condicionales manipulacion de URL y otras funciones generales xml para la manipulacion de XML y para XML Transformation sql para gestionar conexiones a bases de datos i18n para la internacionalizacion y formateo de las cadenas de caracteres como cifras Etiquetas Struts TagLib Editar Distribuidas por Apache para funcionar junto con el Framework de Struts PHP Bean HTML Logic Nested vjgpEtiquetas personalizadas Editar Anteriormente hemos visto un ejemplo para crear una etiqueta personalizada almacenada en nuestra propia biblioteca de etiquetas Para desarrollar etiquetas personalizadas utilizaremos la API de las bibliotecas de etiquetas Tag Libraries La API de las Servlet de Java es pre style overflow x auto javax servlet pre La API de JSP extiende de esta API pre style overflow x auto javax servlet jsp pre Finalmente la API de las bibliotecas de etiquetas Tag Libraries extiende de esta ultima pre style overflow x auto javax servlet jsp tagext pre Lo mas relevante de esta API son Las interfaces Tag que todas las etiquetas deben implementar BodyTag extiende a la anterior y define metodos adicionales para inspeccionar el cuerpo de una etiqueta Las clases BodyContent un manejador handler para leer y escribir en el cuerpo de una etiqueta BodyTagSupport que implementa la interfaz BodyTag TagAttributeInfo para obtener la informacion de los atributos de la etiqueta declarados en el TLD TagData que contiene los valores de los atributos TagExtraInfo para especificar informacion extra de una etiqueta como las variables que introduce en el codigo o los atributos que seran validados TagInfo basado en la informacion de la TLD TagLibraryInfo representa la informacion de una TLD TagSupport implementa la interfaz Tag VariableInfo contiene informacion como el tipo y ambito de las variables creadas o modificadas por la etiqueta Podemos encontrar una descripcion mas detallada en http java sun com j2ee sdk 1 3 techdocs api javax servlet jsp tagext package summary htmlOtro ejemplo de etiqueta podria ser el siguiente codigo Java pre style overflow x auto package org lycka taglibs import public class LowerCaseTag extends BodyTagSupport public int doAfterBody throws JspException try BodyContent body getBodyContent JspWriter writer body getEnclosingWriter String bodyString body getString if bodyString null writer print bodyString toLowerCase catch IOException ioe throw new JspException Error IOException while writing to the user return SKIP BODY pre Al encontrar el inicio de la etiqueta el runtime primero se invocara el metodo doStart una vez instanciada la clase Puede devolver uno de los siguientes valores SKIP BODY no procesa el contenido del cuerpo de la etiqueta EVAL BODY INCLUDE evalua el cuerpo de la etiqueta EVAL BODY TAG evalua el cuerpo de la etiqueta y lanza el resultado a otro stream almacenado en una propiedad de la etiqueta El metodo doAfterBody despues de procesar el cuerpo de la etiqueta Finalmente se invocara el metodo doEndTag Puede devolver EVAL PAGE para seguir procesando la pagina JSP SKIP PAGE para dejar de procesar la pagina JSP para por ejemplo redirigir la paginaDeclarado en el descriptor de la biblioteca como pre style overflow x auto lt tag gt lt name gt lowercase lt name gt lt tagclass gt org lycka taglibs LowerCaseTag lt tagclass gt lt bodycontent gt JSP lt bodycontent gt lt info gt Put body in lowercase lt info gt lt tag gt pre Utilizado en la pagina JSP pre style overflow x auto lt taglib uri taglib lycka prefix lycka gt lt lycka lowercase gt Esto es un EJEMPLO lt lycka lowercase gt pre Y su salida seria esto es un ejemploVease tambien EditarTomcat Sun Microsystems Servidor HTTP Apache GlassFish Contenido dinamicoEnlaces externos EditarSun Microsystem Pagina oficial de JSP Apache Tomcat Datos Q183169 Multimedia Jakarta Server PagesObtenido de https es wikipedia org w index php title JavaServer Pages amp oldid 127717228, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos