Está en la página 1de 5

Objetos Implcitos

En JSP disponemos de algunos objetos implcitos, que nos permitirn acceder a diferente
informacin y realizar diversas acciones. En JSP tenemos los siguientes objetos implcitos: request,
response, out, session, application, config, pageContext, y page.
Request
Es un objeto de la clase HttpServletRequest, su uso principal es el acceso a los parmetros de la
peticin. Destacaremos las siguientes funciones:
String getParameter(String name)
Devuelve el valor de un parmetro.
Enumeration getParameterNames()
Devuelve una enumeracin con los nombres de todos los parmetros de la
peticin.
String [] getParameterValues(String name)
Los parmetros pueden tener valor mltiple, con esta funcin recuperamos un
array con todos los valores para un nombre dado.
String getRemoteAddr()
Devuelve la IP del host desde el que se realiza la peticin
String getRemoteHost()
Devuelve el nombre del host desde el que se realiza la peticin.
Ejemplo:
<html>
<body>
<form>
<input type="text" name="parametro"/>
<input type="submit"/>
</form>
<br>
<br>
Su IP: <%=request.getRemoteAddr()%>
<br>
Su nombre de host: <%= request.getRemoteHost() %>
<br>
Valor del parmetro: <%= request.getParameter("parametro") %>
</body>
</html>

Response
Es un objeto de la clase HttpServletResponse, que asiste al servlet en su generacin de la
respuesta para el cliente, contiene funciones para manejo de cabeceras, cdigos de estado,
cookies y transferencia de control.
Out
Es un objeto de la clase JspWriter, es el que nos permite acceder a la salida del navegador desde
los scriplet.
Ejemplo:
<%
out.print("cadena");
out.println("cadena");
%>

Session
Es un objeto de la clase HttpSession. Nos permite acceder a la sesin asociada a la peticin. A
travs de este objeto podemos, entre otras cosas, guardar objetos que sern accesibles desde
cualquier JSP de la sesin o invalidarla. Para guardar y recuperar informacin usaremos:
Object session.getAttribute("clave");
Void session.setAttribute("clave", Object objeto);
Y para invalidar la sesin:
void session.invalidate();
Ejemplo:
<%@ page session="true" %>
<%
java.util.ArrayList accesos= (java.util.ArrayList)session.getAttribute("accesos");
if (accesos==null)
accesos=new java.util.ArrayList();
accesos.add(new java.util.Date().toString());
session.setAttribute("accesos", accesos);
if (request.getParameter("invalidaSesion")!=null)
session.invalidate();
%>
<html>
<body>
<form>
<input type="submit" name="invalidaSesion"
value="Invalidar sesin"/>
<input type="submit" value="Recargar pgina"/>
</form>
<br/>
Usted accedi a esta pgina en los siguientes momentos:
<br>
<%
for (int i=0;i<accesos.size();i++)
{
%>
<%= accesos.get(i) %>
<br>
<%
}
%>
</body>
</html>

Application
Es un objeto de la clase ServletContext. Este objeto es comn para toda la aplicacin web y, entre
otras cosas, nos permite almacenar informacin que ser accesible desde todas las pginas de la
aplicacin web, independientemente de la sesin. Para guardar y recuperar valores:
Object application.getAttribute("clave");
void application.setAttribute("clave", Object objeto);
Ejemplo:
<%@ page session="true" %>
<%
java.util.Hashtable direcciones = (java.util.Hashtable)application. getAttribute("direcciones");
if (direcciones==null)
direcciones=new java.util.Hashtable();
direcciones.put (request.getRemoteAddr(),"");
application.setAttribute("direcciones", direcciones);
%>
<html>
<body>
El servidor fue accedido desde las siguientes direcciones IP:
<br>
<%
java.util.Enumeration e = direcciones.keys();
while (e.hasMoreElements())
{
%>
<%= e.nextElement() %>
<br>
<%
}
%>
</body>
</html>

Config
Es un objeto de la clase ServletConfig. Permite acceder a parmetros de inicializacin del servlet y
a su contexto.
PageContext
Es un objeto de la clase PageContext. Entre otras cosas, nos permite almacenar informacin
localmente a la pgina. Para guardar y recuperar valores:
Object pageContext.getAttribute("clave");
void pageContext.setAttribute("clave", Object objeto);
Tambin podemos usar PageContext para almacenar y recuperar informacin en sesin y en
aplicacin:
Almacenar en contexto de pgina:
PageContext.setAttribute("clave", obj, PageContext.PAGE_SCOPE);
PageContext.setAttribute("clave", obj);
Almacenar en contexto de sesin:
PageContext.setAttribute("clave",obj, PageContext.SESSION_SCOPE);
session.setAttribute("clave", objeto);
Almacenar en contexto de aplicacin:
PageContext.setAttribute("clave",obj,PageContext.APPLICATION_SCOPE);
application.setAttribute("clave",objeto);

Page
Es un sinnimo de this, no tiene utilidad en el estado actual de la especificacin.

Gestin de Cookies en JSP


En el paquete estndar javax.servlet.http se encuentra la clase Cookie recogida de la siguiente
forma:
public class Cookie implements Cloneable
El constructor de la clase se define como:
public Cookie(String name, String value);
El primer parmetro se corresponde con el nombre de la cookie y el segundo con el valor de la
misma. El resto de los mtodos de la clase cookie se divide en dos grupos: los mtodo getXXX
sirven para obtener informacin de la cookie; los mtodos setXXX sirven para establecer las
caractersticas de la cookie.
Para crear un objeto de tipo Cookie se utiliza el constructor de la clase Cookie que requiere su
nombre y el valor a guardar. El siguiente ejemplo creara un objeto Cookie que contiene el nombre
nombre y el valor objetos.
<%
Cookie miCookie=new Cookie(nombre,objetos);
%>

Tambin es posible crear cookies con contenido que se genere de forma dinmica. El siguiente
cdigo muestra un cookie que guarda un texto que est concatenado a la fecha/hora en
ese momento:
<%@page contentType="text/html; charset=iso-8859-1"
session="true" language="java" import="java.util.*" %>
<%
Cookie miCookie=null;
Date fecha=new Date();
String texto= Este es el texto que vamos a guardar en el
cookie+fecha;
miCookie=new Cookie(nombre,texto);
%>

A continuacin de muestra un resumen de ambos grupos:


Mtodos get
public String getComment();
public String getDomain();
public int getMaxAge();
public String getName();
public String getPath();

public boolean getSecure();


public String getValue();
public void setComment(String purpose);
Mtodos set
public void setDomain(String pattern);
public void setMaxAge(int expiry);
public void setPath(String uri);
public void setSecure(boolean flag);
public void setValue(String newValue);