编写有状态的(Stateful)的Session Bean也非常简单,只需要将无状态注释(@Stateless)改成有状态注释(@Stateful)即可。如果使用Stateful Sessionbean,客户端在使用同一个SessionBean对象实例时可以保存状态,也就是说,在多次引用该对象时实际上在服务端是使用的同一个 Sessionbean的对象实例,而无状态sessionbean使用了不同的sessionbean对象实例,因此,是无法保存状态的。
10年专注成都网站制作,企业网站制作,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于企业网站制作,高端网页制作,对软装设计等多个行业,拥有丰富建站经验。
下面将编写一个简单的购物车的例子,该例子将客户购买的商品都保存在stateful sessionbean中的List对象中。然后在客户端使用同一个sessionbean的对象实例输出这些商品。我们首先来实现一个 sessionbean的远程接口,这和无状态sessionbean是一样的。代码如下:
- package service;
- import java.util.List;
- import javax.ejb.Remote;
- public interface ShoppingCart
- {
- // 添加某个商品信息ITPUB个人空间
- public void addCommodity (String value);
- // 获得客户购买的所有商品的纱衔泥ITPUB个人空间!
- public List getCommodity();
- }
|
为了方便,在这里只将商品名保存在List对象中,读者也可以在List对象中保存更复杂的信息,如使用一个对象来保存商品信息。
下面来编写具体的Stateful sessionbean,代码如下:
- package service;
- import java.util.ArrayList;
- import java.util.List;
- import javax.ejb.Stateful;
- @Stateful
- public class ShoppingCartBean implements ShoppingCart
- private List shoppingCart = new ArrayList ();
-
- public void addCommodity(String value)
-
- shoppingCart.add(value); }
- public List getCommodity()
- { return shoppingCart;
- }
|
最后我们编写一个客户端调用程序,代码如下:
- package test;
-
- import java.util.List;
- import java.util.Properties;
- import javax.naming.InitialContext;
- import service.ShoppingCart;
-
- public class Client
- {
-
- public static void main(String[] args) throws Exception
- {
- Properties prop = new Properties();
- InitialContext ctx = new InitialContext();
- ShoppingCart shoppingCart = (ShoppingCart) ctx
- .lookup("ShoppingCartBean/remote");
- shoppingCart.addCommodity("自行车");
- shoppingCart.addCommodity("笔记本电脑");
- shoppingCart.addCommodity("液晶电视");
- List commodities = shoppingCart.getCommodity();
- for(String commodity: commodities)
- {
- System.out.println(commodity);
- }
-
- }
-
- }
|
当前标题:Eclipse+JBoss+EJB3编写有状态的SessionBean
标题URL:http://www.stwzsj.com/qtweb/news3/7303.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联