Variables implícitaseditar
Las páxinas JSP Incluyen Ciertas Variables Privilegiares Sin Necesidad de Declararlas NI Configurarlas:
variable | clase |
---|---|
pageContext |
javax.servlet.jsp.PageContext |
request |
|
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 |
DirectivaSeditar
Son Etiquetas A Partir de Las Cuales Se Xera Información Que Puede Ser Utilizada por El Motor de JSP. Sen producen unha sala visible ao usuario sino que configura o cemo se ejecutará la página jsp.
su sintaxis es:
<%@ directiva atributo="valor" %>
Las Directivas Disponibles Fillo:
-
include
: inclúe o CONTENIDO DE ONU FICHERO EN LA PÁLO MEDIANTE EL ATRIBUTO FILE.
<%@ include file="cabecera.html" %>
-
taglib
: Importa Bibliotecas de Etiquetas (bibliotecas de etiquetas)
<%@ taglib uri="/tags/struts-html" prefix="html" %>
-
page
: especifica atríptas relacionados con la página un procesar. Los atributos Fillo:
atributo | Sintaxis | UTILIZACIÓN |
---|---|---|
import |
<%@ page import="class; class" %> |
Clases de Importación Y Paquetes Java para ser Utilizadas Dentro del Fichero JSP. |
session |
<%@ page session="false" %> |
Especifica si Utiliza os datos contenidos en sesión; por defecto “true”. |
contentType |
<%@ page contentType="class; class" %> |
Especifica o tipo mime del objeto “resposta”; por defecto “Text / HTML; charset = ISO-8859-1”. |
buffer |
<%@ page buffer="12KB" %> |
buffer utilizado por el objeto escritor “out”; Puede Tomar El Valor de “Ningún”; Por defecto “8KB”. |
errorPage |
<%@ page errorPage="/path_to_error_page" %> |
Especifica a Ruta da Páxina de Erro Que será invocada en Caso de Producirse UNA EXCEPCIÓN Durante a EJECCIÓN DE ESTE FICHERO JSP. |
isErrorPage |
<%@ page isErrorPage="true" %> |
Determinar si este fichero jsp es unha página que maneja excepciones. Únicamente a este tipo de páginas PUEEDEN Acceder a la variable implícita “Exception”, que contiene la excepción que provocó la llamada a la página de erro. |
Declaracioneseditar
NOS permiten Declarar variables, funciones y datos estáticos.
<%! int maxAlumnosClase = 30; %>
Scriptletseditar
Los Scriptlets Son partes de Código Java incrustadas entre os elementos estáticos da páxina ….
expresioneseditar
las expresiones se evalúan de dentro de la servlet. Non deben acabar en “;”.
<%= maxAlumnosClase + 1%>
EL SIGUIENTE EJEMPLO PONDRÍA COMO TÍTULO DE LA PÁGINA EL ATRIBUTO “TITULO” CONTENIDO EN O OBJETO Solicitude:
<% String titulo = ""; if (request.getAttribute("titulo") != null) { titulo = (String) request.getAttribute ("titulo"); } %> ... <title><%=titulo%></title> ....
Etiquetaseditar
Etiquetas JSP para simplificar o Código e Dar alcalde funcionalidad.
desarrollar sitios web utilizando etiquetas Etiquetas presenta ciertas Ventajas Como:
- facilitar el aprendizaje.
- facilitar el mantenimiento.
- fomentar la modularidad y la reutilización.
- simplificar el Código e Reducir o Número de Líneas Necesarias.
A súa sintaxe sería:
<%@ taglib uri="/taglib/lycka" prefix="lycka" %> ... <lycka:hola/> ...
Ao xerar o código Java do servlet, esta etiqueta Hola será interpretada Polo servidor de aplicacións como pertencente á biblioteca da biblioteca Lycka Library. Esta biblioteca identificarase no ficheiro de descriptor da nosa aplicación (web.xml) co nome do recurso (URI) / Taglib / Lycka.
<taglib-uri>/taglib/lycka</taglib-uri> <taglib-location>/WEB-INF/tags/lycka.tld</taglib-location>
Unha implementación deste ficheiro de descriptor, /web-inf/tags/lyckka.tld poderí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>
e finalmente, o servidor de aplicacións substituirá a etiqueta polo seu código Java asociado, org.lcyka.taglibs.metiquette:
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; }
E finalmente o navegador mostraríase:
Mi gata es preciosa
JSPDitar etiquetas
As etiquetas pertencen á especificación de JSP. Ofrecen funcionalidades básicas.
Un primeiro grupo de etiquetas proporciona a funcionalidade no nivel da páxina dun xeito moi sinxelo:
- < JSP: adiante >, redireccione a solicitude a outra URL
- < JSP: incluír >, inclúe o texto dun ficheiro dentro da páxina
- < jsp: plugin >, descargue un complemento Java (unha miniaplicación ou un feixón).
Un segundo grupo permite manipular compoñentes de JavaBean sen coñecemento de Java.
- < JSP: USABEAN >, permítelle manipular un feixón (se non existe, crearase o bean), especificando o seu alcance (alcance) ), A clase e o tipo.
- < jsp: getproperty >, obtén a propiedade especificada dun previamente declarado bean e escríbeo no obxecto de resposta.
- < jsp: setproperty >, configure o valor dunha propiedade dun feixón anteriormente declarado.
Etiquetas jStleDitar
proporcionan o sol dentro da distribución de JSTL.
- Core, iterations, condicional, manipulación de URL e outras funcións xerais.
- XML, para a manipulación XML e XML-Transformation.
- SQL, para xestionar conexións con bases de datos.
- i18n, para a internacionalización e formato de cadeas de caracteres como figuras.
Struts Tags Taglibeditar
Distribuído por Apache para executar xunto co marco de punta.
- php
- bean
- html
- lóxica
- anidado
- VJGP
Etiquetas personalizadas
Temos anteriormente visto un exemplo para crear unha etiqueta personalizada almacenada na nosa propia biblioteca de etiquetas.
para desenvolverse Etiquetas personalizadas, utilizaremos as bibliotecas da etiqueta API (bibliotecas de etiquetas).
A API Java Servlet é:
javax.servlet.*
a API de JSP esténdese a partir desta API,
javax.servlet.jsp.*
Finalmente, a API de Label Bibliotecas (Bibliotecas de etiquetas) esténdese desde este,
javax.servlet.jsp.tagext.*
O máis relevante desta API son:
- As interfaces
- , que deben implementar todas as etiquetas.
- Bodytag, esténdese ao anterior e define métodos adicionais para inspeccionar o corpo dunha etiqueta.
- Clases
- Bodycontent, un manipulador (manipulador) a Ler e escribir no Corp ou unha etiqueta.
- BodytagSupport, que implementa a interface de Bodytag.
- TagattributeInfo, para obter a información sobre os atributos da etiqueta declarada no TLD.
- Tagdata, que contén os valores dos atributos.
- Tagextrainfo, para especificar información extra a partir dunha etiqueta, como as variables que introduce o código ou os atributos que serán validados.
- TagInfo, baseado na información do TLD.
- TagLibraryInfo, representa a información dun TLD.
- TagSupport, implementa a interface de etiquetas.
- variableinfo, contén Información como o tipo e alcance das variables creadas ou modificadas pola etiqueta.
Podemos atopar unha descrición máis detallada en http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/jsp/tagext/package-summary.html
Outro exemplo de etiqueta Podería ser o seguinte 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; } }
Cando atopa o inicio da etiqueta, o tempo de execución será invocado o método DostRart () unha vez que a clase ten foi instanciado. Pode devolver un dos seguintes valores:
- Skip_Body, non proceder os contidos do corpo da etiqueta.
- eval_body_include, avaliar o corpo da etiqueta.
- eval_body_tag, avalía o corpo da etiqueta e lanza o resultado a outro fluxo almacenado nunha propiedade de etiqueta.
O método dofterbody () despois de procesar o corpo da etiqueta.
O método Doendtag () será invocado. Pode devolver:
- eval_page, para continuar procesando a páxina de JSP
- Skip_Page, para deixar de procesar a páxina de JSP, por exemplo, redireccionando a páxina
Declarado no descriptor da biblioteca como
<tag> <name>lowercase</name> <tagclass>org.lycka.taglibs.LowerCaseTag</tagclass> <bodycontent>JSP</bodycontent> <info>Put body in lowercase.</info> </tag>
Usado na páxina de JSP
<%@ taglib uri="/taglib/lycka" prefix="lycka" %> ... <lycka:lowercase>Esto es un EJEMPLO</lycka:lowercase>
e a túa saída sería
esto es un ejemplo