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.*" %>
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; %>
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;
- %>
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;
- %>
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>
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.
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.
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.
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 );
- %>