http://expert.csdn.net/Expert/topic/2259/2259157.xml?temp=.8763086

解决方案 »

  1.   

    create肯定是新建一个的有状态体现在: 比如一个购物车bean,状态就是你所买的货物
    有状态就是说这个bean是你的,不是别人的,里面都是你 的信息
    无状态bean就是说这个bean是所有人共享的.所以里面不能保存任何表示个人的信息 ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  2.   

    create肯定是新建一个的
    --------------------------------------
    楼主的意思是,如果每次都是新建一个,那是怎么保持上次他用的那个的状态的?
    是这意思吧,楼主。
      

  3.   

    新建一个实例的,这些状态保存BEAN类的状态变量里,一个状态BEAN的状态是和不同的客户端相关联的,也就是说明的客户端是没有办法访问不属于他的状态的,上面的例子里,当两次create都将产生一个新的bean实例,并将传入的参数作为状态保存到BEAN类里。
      

  4.   

    我也知道状态保存到BEAN类里,但我怎样在同一个客户端的两次调用之间来获取这个状态,使用这个状态?
      

  5.   

    一个状态BEAN的状态是和不同的客户端相关联
    --------------------------------------------
    也就是说一个特定的实例,只能由产生这个实例的特定的客户来调用。那么我应该怎样来调用我上一次产生的实例,而不是新建一个呢?
      

  6.   

    把你的bean存入session里,session.setAttribute(你的bean,name)
    然后需要的时候 你的bean session.getAttribute(name) ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  7.   

    放到session里?
    那么请问当这个session超时后,是不是就没有办法调用这个实例了?但这个实例却还在缓存中或文件中啊,这不是占用了资源吗?
      

  8.   

    具体没做过.session超时肯定就不能用了.占用资源? 垃圾收集器是干嘛的?:) ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  9.   

    呵呵,zez(思恩 为老婆多挣钱 鹤清风)回答的对呀,通常使用有态SESSION BEAN都会把远程接口保存在SESSION里,而不是这个实例,这个实例的状态被序列化保存在硬盘上的,如果这个实例不在,EJB容器将通过远程接口找到并重新建立它。
    事实上,我发现很多人张口就大谈EJB理论,其实很多人都不会用这个有态SESSION BEAN
      

  10.   

    具体没做过.session超时肯定就不能用了.占用资源? 垃圾收集器是干嘛的?:)
    ---------------------------------------------------------------------
    好像状态的会话BEAN在不用的时候,垃圾收集器是不会去收集它的,而是由容器调用它的ejbPassivate(),然后将其串行化,存贮在磁盘上。等下次用的时候,再调用它的ejbActivate()。如果像你说的不用了就被回收,那么它的状态还有什么意义?
      

  11.   

    垃圾收集
    容器
    创建实例
    sessionbean
    session
    这么些东西!容器将创建一个实例 :不是对应一个机器的IP,而是对应一个sessionID,浏览器不关掉,服务器端session不超时,这个sessionID就一直有.当然,这些都是J2EE服务器的事儿.
    -------------------------
    session Bean 和Session有区别,session是httpSession-------------------------
    session Bean是EJB,把有状态session Bean保存在httpSession中是个好办法.
      

  12.   

    怎个简单问题,搞的如此复杂!?
    有状态的session bean可以保存客户信息,假设用户在一次请求中创建了一个有状态的session bean并将自己的客户信息保存到其中,那么如果下次(或者在其它页面)用户想得到刚刚创建的session bean从中读取信息,那么怎样得到上次创建的那个session bean呢?
    1.yourEJBObject.getHandle();
    2.将handle保存在session中
    3.在其它页面通过session获得handle
    4.YourRemoteInterface yourEjbObject = (YourRemoteInterface)handle.getEJBObject();
    5.yourEjbObject.doSomething;