Las directivas se utilizan para informar al servidor web de características concretas de los JSP a la hora de convertirlos en clases. Hay tres directivas disponibles: page
, taglib
e include
. Y de forma general se expresan con la siguiente sintaxis:
<%@ directiva { atributo=”valor” }* %>
Directiva «page»
La directiva page
define atributos que sirven para construir el servlet o indicar algunos parámetros necesarios para generar la respuesta, como el tipo de contenido por ejemplo, que en un servlet tradicional se indica llamando al método setContentType
.
Por ejemplo:
<%@ page info="Mi primer JSP" %>
O con la correspondiente sintaxis XML:
<... xmlns:jsp="http://java.sun.com/JSP/Page"> <jsp:directive.page info="Mi primer JSP"/>
Los atributos que admite la directiva page
son los siguientes:
– language=»scriptingLanguage»: Lenguaje de programación utilizado dentro de los scripts. El único valor admitido es «java», que además es el valor por defecto.
– extends=»className»: Nombre completo de la clase de la que debería heredar la clase resultante de la compilación de la página JSP, lo que permite utilizar una implementación propia si fuera preciso.
– import=»importList»: Lista de tipos, separados por coma, a importar en la clase resultante de la compilación de la página JSP. La lista por defecto incluye java.lang.*
, javax.servlet.*
, javax.servlet.jsp.*
y javax.servlet.http.*
.
– session=»true|false»: Indica si la página interviene en una sesión. El valor por defecto es true
, lo que quiere decir que existirá una variable instanciada con el nombre session
y de tipo HttpSession
disponible para los scripts. Si se cambia a false
la variable no existirá.
– buffer=»none|sizekb»: Tamaño a utilizar, en kbytes, para el buffer que contendrá la respuesta generada por el servlet. Es equivalente a llamar al método setBufferSize
sobre el objeto respuesta.
– autoFlush=»true|false»: Indica como se debe gestionar el buffer que contiene la respuesta. El valor por defecto es true
, lo que quiere decir que se envía al cliente cuando se llena. Si se cambia a false
se indica que se debe elevar una excepción por overflow.
– isThreadSafe=»true|false»: Indica si el servlet resultante debe implementar la interface SingleThreadModel
. El valor por defecto es false
, y no debería cambiarse ya que el uso de la interface está deprecado.
– info=»info_text»: Una cadena de texto libre que se añade a la declaración del servlet y que puede recuperarse con el método getServletInfo
.
– isErrorPage=»true|false»: Indica si el JSP se utiliza como página de error. Por defecto es false
, si se cambia a true
entonces existirá una variable instanciada con nombre exception
y de tipo Throwable
disponible para los scripts.
– errorPage=»error_url»: URL a la que redirigir el flujo del proceso en caso de producirse una excepción.
– contentType=»ctinfo»: Tipo de contenido de la respuesta y codificación utilizada. Es equivalente a llamar al método setContentType
sobre el objeto respuesta. Para las páginas JSP el valor por defecto es «text/html», y para los documentos JSP es «text/xml».
– pageEncoding=»peinfo»: Codificación utilizada para la respuesta. Es equivalente a llamar al método setCharacterEnconding
sobre el objeto respuesta. El valor por defecto no está prefijado, sigue unas reglas basadas en analizar el contenido para obtener el valor correspondiente.
– isELIgnored=»true|false»: Indica si el Expression Language (EL) debe estar habilitado mientras se procesa el JSP y las expresiones deben evaluarse. El valor por defecto varía según la versión de la implementación, actualmente se puede asumir que es false
. EL se introduce en un apartado posterior.
Directiva «taglib»
JSP permite a las aplicaciones definir sus propias librería de acciones, llamadas tag libraries, en vez de limitarlas a utilizar sólo las estándar. La directiva taglib
permite indicar las librerías que utiliza una página JSP, así como el prefijo utilizado para hacer referencia a las mismas.
<%@ taglib ( uri="tagLibraryURI" | tagdir="tagDir" ) prefix="tagPrefix" %>
La directiva taglib
admite los siguientes parámetros:
– uri: URI de la librería.
– tagdir: Prefijo de la librería que se encuentra dentro del directorio /WEB-INF/tags/. Debe comenzar obligatoriamente por /WEB-INF/tags/.
– prefix: Prefijo por el que se hace referencia a la librería. No puede estar vacío, ni tener por nombre jsp
, jspx
, java
, javax
, servlet
, sun
o sunw
.
Directiva «include»
La directiva include
permite incluir un recurso dentro de un JSP, normalmente otro JSP.
Sigue la siguiente sintaxis general:
<%@ include file="url" %>
O la correspondiente XML:
<... xmlns:jsp="http://java.sun.com/JSP/Page"> <jsp:directive.include file="url”/>