Um bean de sessão é um tipo de bean empresarial. É criado por um cliente e normalmente existe apenas durante uma sessão única de cliente-servidor.
Os beans de sessão são úteis para descrever interacções entre outros beans (fluxo de tarefas) e para implementar tarefas específicas. Não representam dados na base de dados, mas podem aceder a dados, para que possamos utilizar beans de sessão para ler, actualizar e inserir dados num processo empresarial. Os beans de sessão acedem a dados que incluem conceitos, não são partilhados e normalmente são só de leitura. Os beans de sessão contêm lógica empresarial e dados persistentes do modelo de entidades. Existem três tipos de beans de sessão: stateless, stateful e singleton.
Um bean de sessão stateless é colocado num conjunto pelo contentor para processar vários pedidos a partir de vários clientes e não mantém qualquer estado de conversação.
Um bean de sessão com registo age em nome de um único cliente e mantém informações sobre a sessão específica para o cliente (denominada estado conversacional) através de várias chamadas de método e transacções. Existem durante uma única sessão cliente/servidor.
Um bean de sessão singleton é um componente de bean de sessão que é instanciado uma vez por aplicação. Em casos onde o contentor é distribuído através de muitas máquinas virtuais, cada aplicação terá uma instância de bean de singleton para cada JVM.