Una sesión es una serie de comunicaciones entre un cliente y un servidor en la que se realiza un intercambio de información.
El tiempo de vida de una sesión es cuando un usuario se conecta por primera vez a un sitio web y finaliza la conexión según estas tres circunstancias:
Cuando se abandona el sitio web
Cuando se alcanza en la sesión un tiempo máximo de inactividad y es automáticamente eliminada
Se ha cerrado o reiniciado el servidor
Para obtener la sesión de un usuario utilizamos el método getSession() que devuelve una interfaz de tipo HttpSession.
<%
HttpSession sesion=request.getSession();
%>
Para guardar un objeto en una sesión utilizamos el método setAttribute(), utiliza dos argumentos, su formato es el siguiente: SetAttribute(java.lang.String name,java.lang.Object value)
Para recuperar objetos de una sesión utilizamos el método getAttribute(): getAttribute(java.lang, String nombre)
Para casos de tipo primitivos se deben de convertir a objetos (Integer edad=(Integer)sesion.getAttribute("edad");), pero luego con el método intValue() obtendremos el valor real.
Algunos métodos de las sesiones:
long getCreationTime(): devuelve fecha y hora de la creación de la sesión
boolean isNew(): devuelve verdadero si la sesión se acaba de crear.
Para cerrar sesión utilizamos el método invalidate().