Tutorial JSP
Sesiones
Descripción
Una sesión es una serie de comunicaciones entre un cliente y un servidor en la que se realiza un intercambio de información. Por medio de una sesión se puede hacer un seguimiento de un usuario a través de la aplicación. El tiempo de vida de una sesión comienza cuando un usuario se conecta por primera vez a un sitio web pero su finalización puede estar relacionada con tres circunstancias:
  • Cuando se abandona el sitio web.
  • Cuando se alcanza un tiempo de inactividad que es previamente establecido, en este caso la sesión es automáticamente eliminada. Si el usuario siguiera navegando se crearía una nueva sesión.
  • Se ha cerrado o reiniciado el servidor.

Para poder hacer uso de las sesiones en JSP hay que poner el atributo session de la directiva page a true de la siguiente manera:
<%@page session=’true’%>

En JSP las acciones que se pueden realizar sobre las sesiones se lleva a cabo mediante la interface HttpSession y los métodos que implementa. Esta interfaz está incluida dentro del paquete javax.servlet.http y es utilizada por el contenedor de páginas JSP para crear una sesión entre el servidor y el cliente. Para obtener la sesión de un usuario se utiliza el método getSession() que devuelve una interfaz de tipo HttpSession.
<%HttpSession sesion=request.getSession();%%>

Para guardar un objeto en una sesión se utiliza el método setAttribute(), que ha sustituido al método putValue(). Este método utiliza dos argumentos: -El primero es el nombre que identificará a esa variable. -El segundo es el dato que se va a guardar. SetAttribute(java.lang.String name, java.lang.Object value) Un ejemplo de cómo guardar una cadena de texto en la sesión:
<%@page import=”java.util.*” session=”true” %%>
<% HttpSession sesion=request.getSession(); sesion.setAttribute(“trabajo”,”Paginas de JSP”); %%>

Los datos que se guardan en la sesión permanecen ahí a la espera de ser utilizados. Para ello es necesario realizar el proceso contrario a cuando se graban, comenzando por la recuperación del objeto de la sesión para empezar a ser tratado. Para poder realizar este paso se utiliza el método getAttribute() (anteriormente se utilizaba el método getValue(), pero este método se encuentra en desuso), utilizando como argumento el nombre que identifica al objeto que se quiere recuperar. getAttribute(java.lang,String nombre) Un ejemplo de recuperación de objetos almacenados en la sesión:
<% HttpSession sesion=request.getSession(); Sesion.getAttribute(“nombre”); %%>
Cookies
Descripción
Las cookies son datos guardados por los navegadores a instancias del servidor. Los sitios web las utilizan con propósitos diversos: identificación de usuarios, sistemas de personalización, publicidad, estudios de perfil, etc. De hecho la mayor parte de los portales no funcionarían sin cookies, o al menos se verían obligados a implementar algún mecanismo sustitutorio, como por ejemplo la reescritura de parámetros en la URL. Su simplicidad y su gran utilidad hacen de las cookies uno de los recursos más utilizados en el desarrollo de aplicaciones Web. Una cookie es un elemento de información de tamaño reducido enviado por el servidor para que el navegador lo guarde de manera que se pueda recuperar su valor en cualquier momento. Las cookies nacen con la intención de proporcionar un mecanismo para almacenar en el ordenador de cada usuario datos con los que formar un hilo de comunicación entre las distintas páginas que participan en una aplicación Web. Uno de los casos más típicos es el que se produce cuando se registra en un sitio web. Cuando el mismo usuario visita de nuevo esas páginas, es reconocido de forma automática. Esto es así porque la primera vez que se identifico se creó una cookie en el ordenador local de dicho usuario con los datos necesarios para ser reconocido.
Un ejemplo de una COOKIE sería éste:
String cookie=new String();
int encontrado=-1;            
            
Cookie [] todosLosCookies=request.getCookies();
Cookie unCookie=null;

if(todosLosCookies!=null){
	for(int i=0;(i<todosLosCookies.length) && (encontrado==-1);i++)
	{
		unCookie=todosLosCookies[i];
		if(unCookie.getName().equals("login"))
		{
			encontrado=i;
		}
	}
	if(encontrado!=-1)
	{
		cookie=unCookie.getValue();
	}
}
				

Y para llamarla es tan sencillo como agregar en el input del elemento a recordar un value="<%=cookie%>"
Por ejemplo:
<input name="login" type="text" value="<%=cookie%>">
Sobre esta página web
Esta página web ha sido diseñada por:
Pedro José García Manchón
y validada posteriormente. Valid XHTML 1.0 Transitional