Both Servlet's HttpSession object and EJB's Stateful session bean are used to maintain client state, so how one can decide to choose in between these two techniques.

Here is comparison between both techniques to take decision which one is useful as per your application need.

  • Stateful session bean
  • Advantages:

    1. It supports transaction service, security service, life cycle management, RMI, instance cache; thread safe etc. so one need not to write code for these services.
    2. Both web based and non-web based clients can use it.
    3. Multiple operations for a single http request can be processed.

    Disadvantages:

    1. Since it supports a number of services described above it takes more time to process a request.


  • Http Session object
  • Advantages:

    1. It is a simple java object so takes very less time and resources to maintain a client state also easy to code.

    Disadvantages:

    1. It does not support the features described above you have to code for that features.
    2. Multiple operations for a single http request can not be processed.