现在又发现即使只是一个变量的值也保存不了private String test;在第一次调用时设为“888”,第二次时为null

解决方案 »

  1.   

    第二次我用同样的参数create这个session bean,应该来说是得到原来的那个session bean这句话对吗?
    无论什么时候,你create的时候,都是新建一个bean ..
    有状态的意思是说在两个方法调用之间可以保存状态... ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  2.   

    家都是这样说的啊http://expert.csdn.net/Expert/topic/1921/1921981.xml?temp=.1683313如果不create 的话我怎么使用啊?
      

  3.   

    以前问的问题:ejbcontroler,是有壮态的sessionbean,但为何每次都create一个新的? 
     
    Top 
     
     回复人: uu_snow(薇薇) ( ) 信誉:100  2003-6-13 17:43:09  得分:50 
     
     
      
    你不CREATE它,怎么用呀
    CREATE并不是真的就CREATE出一个实例来  
     
    Top 
     
     回复人: trilsen(正入门) ( ) 信誉:99  2003-6-16 9:38:12  得分:0 
     
     
      
    第一个问题我已经知道了,对于第二个问题,如果create不一定产生新的实例的话,他是不是会认定这个客户,如果它以前曾经create 过的话,就直接取出来?  
     
    Top 
     
     回复人: javalovers(飞飞) ( ) 信誉:100  2003-6-16 10:28:00  得分:50 
     
     
      
    stateful SessionBean也有实例池的概念,当Create()时,如果实例池里面已经有了,就不用创建了,直接取出来,不过有一个钝化和激活的过程
      
     
    Top 
     
     回复人: trilsen(正入门) ( ) 信誉:99  2003-6-16 11:56:01  得分:0 
     
     
      
    谢谢,那它是不是要先判断create它客户是不是和初始时create它的客户是同一个客户?根据什么来判断?  
     摘自:
    http://expert.csdn.net/Expert/topic/1910/1910796.xml?temp=4.580325E-02
      

  4.   

    当你的会话结束时,有状态会话bean的生命周期已经结束~!即使你用同样的参数create,也不可能得到原来的bean。不能找回只能保持会话
      

  5.   

    你可以对比无状态会话bean :可以在bean中做个私有变量i再做个每次i++的远程方法你会发现客户端create两个实例后两个不同实例方法所返回的i值是有关联的!
      

  6.   

    无状态和有状态是从客户端的角度来看
    至于实例池的调度只是ejb容器的机制
      

  7.   

    不太懂“当你的会话结束时,有状态会话bean的生命周期已经结束~!”你所说的会话是指什么,谁跟谁的会话?我的目的是实现这样:第一次连接有状态session bean,由session bean取出实体BEAN的资料,再回来显示在浏览器是(让用户确认是否对此资料进行操作),用户点“确认”后,再回到EJB层,这时应该怎么办?怎么找到那个session bean?如果不能CREATE的话,我是否应该在第一次create完以后把那个local接口作为一个对象保存起来呢?这样能达到目的吗?下次再取出那个local(session bean)时,里面的状态有没有变?这样用起来的话好象体现不出有状态会话bean的“有状态”这一特征
      

  8.   

    有状态bean和无状态bean的区别,是
    有状态bean可以有自己的变量,当它create的时候传入参数,并保存自己的参数.在几次方法调用之间可以保存它的参数的变化.可以保证你用的是同一个bean..参数不会被其它用户改变..
    而无状态bean不可以有自己的参数,因为它的参数是没意义的,因为当你create一个bean的时候,或许它内部有个参数取默认值,但另一个人create的时候,他很可能得到的是和你的同一个bean.然后它调用的时候,得到的参数可能是你已经修改过的.这样肯定是客户所不希望的..另外,无状态bean create的时候是不能传参数的...至于有状态bean的调用,是必须在一个会话期间的..也就是在一个session期间它是有状态的..你结束会话,bean自然就没有了.你create同样参数的只是得到另一个bean,而不是你以前的bean
    要想得到以前的bean,你可以把你的bean保存到session里  session.setAttribute("name",bean)
    然后在以后任何时候取出来,session.getAttribute("name")得到你以前的bean .
    如果想在几个会话期间都得到同样的bean.(也就是比如今天去某个网站买了东西,但没付钱,第二天再去,又买了其它东西,或退掉一些,然后再确定付款,结束..这期间都是调用同一个bean)那就要把你的bean保存到硬盘上.或软盘上..第二次取出来就行了..至于其他人说只要create()同样参数的就是调用以前的已经create的bean.我没有看到资料,不妄下结论... 但觉得那样说是不正确的.比如一个状态bean保存的是你的银行存款,你第一次create(1000) (1000表示你的存款) ,然后你取出200 ,结束这次会话..那第二次你create()的时候是create(1000)还是create(800) .按上面说的要create同样参数的,也就是1000,但你现在账号上明明只有800了,它怎么去找你以前的bean ???
    这是我的理解,刚看了一会书得到的结论,因为没有做过,说的可能有些不对,还望有经验的大侠指教... ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  9.   

    这个session应该如何得到呢?
      

  10.   

    直接写session就行...
    jsp内置的 ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  11.   

    在jsp里面是这样,在一个一般的java类中呢?关于你说的用session保存,我相信用request保存也是可以的,因为我在web层的servlet试过,直接用
            request.setAttribute()就行了,但那是在web层的servlet中,现在是有ejb层的一个java类,突然要冒出一个session或request出来,我就不会写了,烦请大侠指点。
      

  12.   

    不明白你到底是怎么实现的...
    把你的bean变量当参数,哪里用就传到哪里呀... ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  13.   

    “把你的bean变量当参数,哪里用就传到哪里呀...” 这点我知道但问题是我在EJB层,得到了session bean 后要把它用session.setAttribute("name",bean)保存起来时,首先怎么得到session,如果得不到的话还怎么编译呢?
      

  14.   

    但问题是我在EJB层,得到了session bean 后要把它用session.setAttribute("name",bean)保存起来时,首先怎么得到session,如果得不到的话还怎么编译呢?这句话是什么意思? session bean是jsp或者servlet来调用的,在ejb层是什么意思? 如果不是用servlet,那当然也就不能用session了.. 不知道你到底是一个怎样的调用过程 ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  15.   

    类似petstore的结构jsp->servlet->java类->ejbcontroller(session bean)->java 类(action)->调用上面所说的有状态会话BEAN->调用cmp--web层--------------|------ejb层-----我想在有状态会话BEAN中保存对实体bean的引用,照你所说的是应该把有状态会话BEAN保存在session中,怎样保存?第一次连接有状态session bean,由session bean取出实体BEAN的资料,再回来显示在浏览器是(让用户确认是否对此资料进行操作),用户点“确认”后,再回到EJB层处理如果保存不了的话,我只有再create一个有状态会话BEAN,里面再跟据create session bean 时提供的参数来创建原来创建过的实体bean,这样多做了很多我认为没有必要的工作
      

  16.   

    一般而言,
    mybean=home.create()后客户端(web层)和bean会话就开始了直到mybean.remove()或你的程序结束(会话结束)其间你就要在web层“保持(保存)mybean引用”
      

  17.   

    那是不是在第一次建完session bean 时就它作为返回值一路传回到web层,下次用是再把它作为参数一直到ejb层?