⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shoppingcartbean.java

📁 此文件有状态会话Bean 大家体验下合无状态会话Bean的区别
💻 JAVA
字号:
package wyf;
import javax.ejb.*;
import javax.naming.*;
import java.util.*;
import javax.annotation.*;
import javax.interceptor.*;

//Bean类
@Stateful
public class ShoppingCartBean implements ShoppingCartRemote
{
    //注入会话上下文
    @Resource
    private SessionContext ctx;
    
    //存储商品的列表
    private Vector<CartItem> cart;


    //==========生命周期的回调方法====begin==================
    
    @PostConstruct
    public void postconstruct()
    {
    	cart = new Vector<CartItem>();
    	System.out.println("======PostConstruct======");
    }
    
    @PostActivate
    public void postactivate()
    {
    	System.out.println("======PostActivate======");
    }
    
    @PrePassivate
    public void prepassivate()
    {
    	System.out.println("======PrePassivate======");
    }
    
    @PreDestroy
    public void predestroy()
    {
    	System.out.println("======PreDestroy======");
    }    
    
    //==========生命周期的回调方法====end====================
    

  /**
   * 这个方法把一件商品加入到购物蓝中
   *
   * @param 商品的编号      String id
   * @param 商品的名称      String title
   * @param 商品的价格 	   double price
   * @param 商品的数量      int quantity
   *
   */
	public void addToCart(String id, String title, double price, int quantity)	
	{
	// 注意:需要处理添加已经存在的商品的情况
    /***********************************************************************************
	* 任务-->
	* 	当顾客选中商品后,这个方法添加CartItem对象,而CartItem 代表商品的情况。你可以查看CartItem.java的
	*   内容,这个文件已经提供给了大家。
	*	
	*	
	*   你需要完成以下功能:
	* 	
	*`	1. 先检查要添加的商品是不是已经在购物蓝中了,如果已经在购物蓝中,那么你只须把这件商品的数量加一。
	*		
	*
	*	2. 如果这件商品不在购物蓝中,创建一个新的CartItem 类型的对象,并把它加入到购物蓝中。
	*
	**************************************************************************************/
       System.out.println("cart----"+cart);
        //添加存在商品的情况
		for(CartItem ci:cart)
		{
			if(ci.getId().equals(id))	
			{
				ci.setQty(ci.getQty() + quantity);
 		        return;
	        }
		}
		//添加不存在商品的情况
		cart.add(new CartItem(id, title, price, quantity));
	}

   /**
   * 这个方法从购物蓝中删除一件商品
   *
   * @param  购物蓝中商品的名称    String id
   * 
   *
   */
	public boolean removeFromCart(String id) {

   /***********************************************************************************
	* 任务-->
	* 	这个方法根据id的值,删除在购物蓝中的特定的商品
	*   
	*
	* 	你需要完成以下功能:
	*
	*	1. 通过id的值,检查购物蓝中是否存在编号为id的商品,如果有就从购物蓝中删除掉。返回true.
	*
	*
	*	1. 通过id的值,检查购物蓝中是否存在编号为id的商品,如果没有就返回false。
	*
    *
	**************************************************************************************/
		for(CartItem ci:cart) 
		{	
			if(ci.getId().equals(id))	
			{				
				cart.remove(ci);
				return true;
	        }
		}
		return false;
  }

   /**
   * 返回所购商品的总价
   *
   * @return                  double Balance
   */
  public double getBalance() 
  {
	/***********************************************************************************
	* 任务-->
	* 	这个方法计算所购买的所有商品的总价. 并返回总价钱。
	*
	* 	需要完成以下功能:
	*
	*`	1. 遍历cart中的CartItem对象,小计每种商品的价格
	*
	*	2.累计所有商品的小计,算出总价
	*
	*	3. 把总价返回
	*
	**************************************************************************************/
	  double cartbalance = 0.0;
	  for(CartItem ci:cart)
	  {
	  	cartbalance = cartbalance + ci.getQty() * ci.getPrice();
	  }  
      return cartbalance;
  }

  //返回当前的购物车
  public Vector getCart()
  {
	  return cart;
  }
  
  //清空当前的购物车
  public void clearCart()
  {
	  cart.clear();
  }

}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -