Un bean de sesión es un tipo de bean empresarial. Lo crea un cliente y normalmente existe sólo mientras dure una sesión de cliente-servidor individual.
Los beans de sesión son útiles para describir interacciones entre otros beans (flujo de tareas) y para implementar tareas determinadas. No representan datos en la base de datos, pero pueden acceder a datos, con lo cual podemos utilizar los beans de sesión para leer, actualizar e insertar datos en un proceso empresarial. Los beans de sesión acceden a datos que incluyen conceptos, no se comparten y normalmente son de sólo lectura. Los beans de sesión contienen lógica empresarial y datos persistentes de modelo de entidades. Existen tres tipos de beans de sesión: sin estado, con estado y monoinstancia.
Un bean de sesión Sin estado está agrupado por el contenedor para manejar varias peticiones de varios clientes y no mantiene ningún estado conversacional.
Un bean con estado actúa en nombre de un solo cliente y mantiene información de sesión específica del cliente (llamada estado conversacional) entre varias llamadas de método y transacciones. Existe mientras dura una sola sesión de cliente/servidor.
Un bean de sesión monoinstancia es un componente de bean de sesión para el cual se crea una instancia una vez por aplicación. En los casos en los que el contenedor se distribuye en muchas máquinas virtuales, cada aplicación tendrá una instancia de bean de monoinstancia para cada JVM.