Eclipse+JBoss+EJB3编写有状态的SessionBean

编写有状态的(Stateful)的Session Bean也非常简单,只需要将无状态注释(@Stateless)改成有状态注释(@Stateful)即可。如果使用Stateful Sessionbean,客户端在使用同一个SessionBean对象实例时可以保存状态,也就是说,在多次引用该对象时实际上在服务端是使用的同一个 Sessionbean的对象实例,而无状态sessionbean使用了不同的sessionbean对象实例,因此,是无法保存状态的。

10年专注成都网站制作,企业网站制作,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于企业网站制作,高端网页制作,对软装设计等多个行业,拥有丰富建站经验。

下面将编写一个简单的购物车的例子,该例子将客户购买的商品都保存在stateful sessionbean中的List对象中。然后在客户端使用同一个sessionbean的对象实例输出这些商品。我们首先来实现一个 sessionbean的远程接口,这和无状态sessionbean是一样的。代码如下:

     
     
  1. package service;  
  2. import java.util.List;  
  3. import javax.ejb.Remote;  
  4. public interface ShoppingCart  
  5. {  
  6.    //  添加某个商品信息ITPUB个人空间  
  7.     public void addCommodity (String value);  
  8.   //  获得客户购买的所有商品的纱衔泥ITPUB个人空间!  
  9.     public List  getCommodity();  

 

为了方便,在这里只将商品名保存在List对象中,读者也可以在List对象中保存更复杂的信息,如使用一个对象来保存商品信息。

下面来编写具体的Stateful sessionbean,代码如下:

     
     
  1. package service;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. import javax.ejb.Stateful;  
  5. @Stateful 
  6. public class ShoppingCartBean implements ShoppingCart  
  7.     private List  shoppingCart =  new ArrayList ();  
  8.  
  9.  public void addCommodity(String value)  
  10.  
  11.         shoppingCart.add(value);          }  
  12.       public List  getCommodity()  
  13.    {        return shoppingCart;  
  14.     }      

   

最后我们编写一个客户端调用程序,代码如下:

 

       
       
  1. package test;  
  2.  
  3. import java.util.List;  
  4. import java.util.Properties;  
  5. import javax.naming.InitialContext;  
  6. import service.ShoppingCart;  
  7.  
  8. public class Client  
  9. {  
  10.  
  11.     public static void main(String[] args) throws Exception  
  12.     {  
  13.         Properties prop = new Properties();  
  14.         InitialContext ctx = new InitialContext();  
  15.         ShoppingCart shoppingCart = (ShoppingCart) ctx  
  16.                 .lookup("ShoppingCartBean/remote");  
  17.         shoppingCart.addCommodity("自行车");  
  18.         shoppingCart.addCommodity("笔记本电脑");  
  19.         shoppingCart.addCommodity("液晶电视");  
  20.         List commodities = shoppingCart.getCommodity();  
  21.         for(String commodity: commodities)  
  22.         {  
  23.             System.out.println(commodity);  
  24.         }  
  25.  
  26.     }  
  27.  

当前标题:Eclipse+JBoss+EJB3编写有状态的SessionBean
标题URL:http://www.stwzsj.com/qtweb/news3/7303.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联