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”); %%>