JSP

Sintaxis

Las JavaServer Pages (JSP) nos permiten separar la parte dinámica de nuestras páginas Web del HTML estático. Simplemente escribimos el HTML regular de la forma normal, usando cualquier herramienta de construcción de paginas Web que usemos normalmente. Encerramos el código de las partes dinámicas en unas etiquetas especiales, la mayoría de las cuales empiezan con "<%" y terminan con "%>".

Sumario de sintaxis

Elemento JSP Síntaxis Interpretación Notas
Expresión JSP <%= expression %>; La Expresión es evaluada y situada en la salida. El equivalente XML es <jsp:expression> expression </jsp:expression>. Las variables predefinidas son request, response, out, session, application, config, y pageContext.
Scriptlet JSP <% code %>; El código se inserta en el método service. El equivalente XML es: <jsp:scriptlet> code </jsp:scriptlet>.
Declaración JSP <%! code %> El código se inserta en el cuerpo de la clase del servlet, fuera del método service. El equivalente XML es: <jsp:declaration> code </jsp:declaration>.
Directiva page JSP <%@ page att="val" %> Dirige al motor servlet sobre la configuración general. El equivalente XML es: <jsp:directive.page att="val"\>. Los atributos legales son (con los valores por defecto en negrita):
  • import="package.class"
  • contentType="MIME-Type"
  • isThreadSafe="true|false"
  • session="true|false"
  • buffer="sizekb|none"
  • autoflush="true|false"
  • extends="package.class"
  • info="message"
  • errorPage="url"
  • isErrorPage="true|false"
  • language="java"
Directiva include JSP <%@ include file="url" %> Un fichero del sistema local se incluirá cuando la página se traduzca a un Servlet. El equivalente XML es: <jsp:directive.include   file="url"\>. La URL debe ser relativa. Usamos la acción jsp:include para incluir un fichero en el momento de la petición en vez del momento de la tradución.
Comentario JSP <%-- comment --%> Comentario ignorado cuando se traduce la página JSP en un servlet. Si queremos un comentario en el HTML resultante, usamos la síntaxis de comentario normal del HTML <-- comment -->.
Acción jsp:include <jsp:include page="relative URL" flush="true"/> Incluye un fichero en el momento en que la página es solicitada. Aviso: en algunos servidores, el fichero incluido debe ser un fichero HTML o JSP, según determine el servidor (normalmente basado en la extensión del fichero).
Acción jsp:useBean <jsp:useBean&nbsp;att=val*/> <jsp:useBean&nbsp;att=val*> ... </jsp:useBean> Encuentra o construye un Java Bean. Los posibles atributos son:
  • id="name"
  • scope="page|request|session|application"
  • class="package.class"
  • type="package.class"
  • beanName="package.class"
Acción jsp:setProperty <jsp:setProperty att=val*/> Selecciona las propiedades del bean, bien directamenteo o designando el valor que viene desde un parámetro de la petición. Los atributos legales son:
  • name="beanName"
  • property="propertyName|*"
  • param="parameterName"
  • value="val"
Acción jsp:getProperty <jsp:getProperty name="propertyName" value="val"/> Recupera y saca las propiedades del Bean.  
Acción jsp:forward <jsp:forward page="relative URL"/> Reenvía la petición a otra página.  
Acción jsp:plugin <jsp:plugin attribute="value"*> ... </jsp:plugin> Genera etiquetas OBJECT o EMBED, apropiadas al tipo de navegador, pidiendo que se ejecute un applet usando el Java Plugin.  
 

La directiva page

La directiva page nos permite definir uno o más de los siguientes atributos sensibles a las mayúsculas:

- import="package.class" o import="package.class1,...,package.classN". Esto nos permite especificar los paquetes que deberían ser importados. Por ejemplo:

<%@ page import="java.util.*" %> El atributo import es el único que puede aparecer múltiples veces.

- contentType="MIME-Type" o contentType="MIME-Type; charset=Character-Set" Esto especifica el tipo MIME de la salida. El valor por defecto es text/html. Por ejemplo, la directiva: <%@ page contentType="text/plain" %> tiene el mismo valor que el scriptlet <% response.setContentType("text/plain"); %>

- session="true|false". Un valor de true (por defecto) indica que la variable predefinida session (del tipo HttpSession) debería unirse a la sesión existente si existe una, si no existe se debería crear una nueva sesión para unirla. Un valor de false indica que no se usarán sesiones, y los intentos de acceder a la variable session resultarán en errores en el momento en que la página JSP sea traducida a un servlet.

- buffer="sizekb|none". Esto especifica el tamaño del buffer para el JspWriter out. El valor por defecto es específico del servidor, debería ser de al menos 8kb.

- autoflush="true|false". Un valor de true (por defecto) indica que el buffer debería desacargase cuando esté lleno. Un valor de false, raramente utilizado, indica que se debe lanzar una excepción cuando el buffe se sobrecargue. Un valor de false es ilegal cuando usamos buffer="none".

- extends="package.class". Esto indica la superclase del servlet que se va a generar. Debemos usarla con extrema precaución, ya que el servidor podría utilizar una superclase personalizada.

- language="java". En algunos momentos, esto está pensado para especificar el lenguaje a utilizar. Por ahora, no debemos precuparnos por él ya que java es tanto el valor por defecto como la única opción legal.