DIRECTIVAS

Las directivas JSP son instrucciones procesadas por el motor JSP cuando la página JSP se traduce a un servlet.

Ejemplos:

  • <%@ page import="javax.naming.*" %>
  • <%@ page import="javax.rmi.PortableRemoteObject" %>
  • <%@ page import="Beans.*" %>

DECLARACIONES

Las declaraciones JSP nos permiten configurar variables para su uso posterior en expresiones o scriptlets.

Ejemplos:

  • <%! double bonus; String text; %>
  • <%! String strMult, socsec; %>
  • <%! Integer integerMult; %>
  • <%! int multiplier; %>
  • <%! double bonus; %>

SCRIPTLETS

Los scriptlets JSP nos permiten embeber segmentos de código java dentro de una página JSP.

El código embebido se inserta directamente en el servlet generado que se ejecuta cuando se pide la página. Este scriptlet usa las variables declaradas en las directivas descritas arriba. Los Scriptlets van encerrados entre etiquetas <% y %>.

Ejemplo:

  • <%
  • strMult = request.getParameter("MULTIPLIER");
  • socsec = request.getParameter("SOCSEC");
  • integerMult = new Integer(strMult);
  • multiplier = integerMult.intValue();
  • bonus = 100.00;
  • %>

VARIABLES PREDEFINIDAS

Un scriptlet puede usar las siguientes variables predefinidas:

  • session
  • request - es un objeto HttpServletRequest
  • response - es un objeto HttpServletResponse
  • out - es un objeto PrintWriter
  • in - es un objeto BufferedReader

Las variables predefinidas se usan en los scriptlets de la misma forma que se usan en los servelts, excepto que no las declaramos.

Ejemplo:

  • <%
  • strMult = request.getParameter("MULTIPLIER");
  • socsec = request.getParameter("SOCSEC");
  • integerMult = new Integer(strMult);
  • multiplier = integerMult.intValue();
  • bonus = 100.00;
  • %>

EXPRESIONES

La expresiones JSP nos permiten recuperar dinámicamente o calcular valores a insertar directamente en la página JSP.

En este ejemplo, una expresión recupera el número de socio desde el bean de entidad Bonus y lo pone en la página JSP.

  • <H1>Calculo</H1>
  • Número de socio:
  • <%= record.getSoc() %>
  • <P>
  • calculo: <%= record.getsocio() %>
  • <P>

Etiquetas específicas de JSP

La especificación JavaServer Pages define etiquetas específicas de JSP que nos permiten extender la implementación JSP con nuevas características y ocultar mucha complejidad a los diseñadores visuales que necesitan buscar la página JSP y modificarla.

PROCESAMIENTO DE JSP

Cuando se llame a la página (date.jsp), será compilada (por el motor JSP) en un Servlet Java. En este momento el Servlet es manejado por el motor Servlet como cualquier otro Servlet. El motor Servlet carga la clase Servlet (usando un cargador de clases) y lo ejecuta para crear HTML dinámico para enviarlo al navegador, como se ve en la Figura 2. Para este ejemplo, el Servlet crea un objeto Date y lo escribe como un String en el objeto out, que es el stream de salida hacia el navegador.

Procesamiento JPS
EL MOTOR DE JSP

El motor JSP nos ofrece instancias de un conjunto de clases. Son objetos ya establecidos, que no tenemos más que usar (no hay que instanciarlos). Deben utilizarse dentro del código Java.

ALGUNOS OBJETOS IMPLÍCITOS
page javax.servlet.jsp.HttpJspPage

Instancia del servlet de la página. Esto es sólo un sinónimo de this, y no es muy útil en Java. Fue creado como situación para el día en que los lenguajes de script puedan incluír otros lenguajes distintos de Java.

config javax.servlet.ServletConfig

Datos de configuración del servlet.

request javax.servlet.http.HttpServletRequest

Datos de la petición, incluyendo los parámetros. Este es el HttpServletRequest asociado con la petición, y nos permite mirar los parámetros de la petición (mediante getParameter), el tipo de petición (GET, POST, HEAD, etc.), y las cabeceras HTTP entrantes (cookies, Referer, etc.).

response javax.servlet.http.HttpServletResponse

Datos de la respuesta. Este es el HttpServletResponse asociado con la respuesta al cliente.

out javax.servlet.jsp.JspWriter

Flujo de salida para el contenido de la página. Este es el PrintWriter usado para enviar la salida al cliente.

session javax.servlet.http.HttpSession

Datos específicos de la sesión de un usuario. Este es el objeto HttpSession asociado con la petición. Las sesiones se crean automáticamente, por esto esta variable se une incluso si no hubiera una sesión de referencia entrante.

application javax.servlet.ServletContext

Datos compartidos por todas las páginas de una aplicación.

pageContext javax.servlet.jsp.PageContext

Datos de contexto para la ejecución de la página. JSP presenta una nueva clase llamada PageContext para encapsular características de uso específicas del servidor como JspWriters de alto rendimiento.

exception java.lang.Throwable

Errores o excepciones no capturadas.

Ejemplo:

  • <%
  • String strParam = request.getParameter("nombre_del_parametro");
  • out.println( strParam );
  • %>