Muy buenas,
la sesión existe cuando el usuario se conecta a través de su navegador, esa sesión se mantiene hasta que se cierra el navegador y es única para cada usuario que se conecta
Código Java:
Ver originalrequest.getSession().setAttribute("nombre", nombre);
Ahi estás creando una variable en la sesión que se llama nombre, y que será accesible desde cualquier parte de la aplicación.
Para controlar el acceso puedes hacer dos cosas, una hacer la comprobación en los controladores, el problema es que tendrás que hacer la comprobación en cada controlador y no es muy eficaz.
Otra forma sería utilizando el patrón
Intercepting Filter