有状态会话Bean在用户登陆时会自动存入用户信息,并保存,无状态会话Bean在用户登陆时存入用户信息,但用户注销或者退出时信息会自动销毁。

解决方案 »

  1.   

    #请问,有状态的SessionBean和无状态的SessionBean有什么分别?
    有状态sessionbean保存用户对话状态,为用户所私有;无状态的不保存用户对话状态,大家共享。
    #有状态的SessionBean是用什么形式在服务器端保存状态?静态变量吗?或是常驻内存?
    有状态sessionbean一旦创建,实例会一直在容器中存在(内存),直到超过配置个数或者服务器资源紧缺时被passive到二级存储设备或者过期后被清除。
    #无状态的SessionBean就是很普通的EJB吗?
    EJB没有普通特殊之分,大家都一样:)
      

  2.   

    谢谢。那我是不是可以这样理解:SessionBean的状态有无,类似于Web应用程序中的Application和SessionApplication 对象只能创建一个实例,一经创建就会在内存中。
    而Session则可以创建多个实例,每个用户都拥有一个,之间没有关联。请问是类似这样的概念吗?
      

  3.   

    可以这样理解。你可以把sessionbean当成web应用程序中的session看待,使用上不同的一点是session跟客户端的对应是由web服务器实现的,而使用sessionbean你要自己去保存sessionbean的引用
      

  4.   

    哦,谢谢。那这个SessionBean的状态是对应单个用户的吗?这么说来,无状态的SessionBean使用起来更加自由、也更加方便吧。
      

  5.   

    无状态SessionBean给系统的负担较小。多个客户可以共用一个SessionBean。
    有状态的SessionBean相对比较耗费资源,每个Bean只能对应一个客户。
      

  6.   

    那为什么要还要用有状态的SessionBean呢?呵呵。据说,使用有状态SessionBean的能力,直接表示J2EE应用程序的成熟度。是这样的吗?
      

  7.   

    有状态SessionBean可以保存自己的信息呗。呵呵
      

  8.   

    无状态SessionBean没有和它相关的实例变量,且不运输任何信息
    有状态sessionbean有和它相关的实例变量,并跨方法调用保持这些变量的值。这样的bean只专注服务于一个客户,并在它的实例变量中运输客户的特定状态。比如在网络商店的购物车bean,当浏览这个网站时,你可选取和添加物品。购物车Bean会跟踪你添加的各种物品条目并保存他们。
      

  9.   

    一句话就可以理解的:要用到成员变量就用stateful session bean, 不到成员变量就用stateless session bean。
      

  10.   

    忘了说了,别和jsp的session混为一谈