www.pudn.com > 33_online_store.rar > InventoryServlet.java


package shopcart.servlets;

import javax.ejb.*;
import javax.naming.*;
import java.io.*;
import java.util.*;
import java.rmi.*;
import javax.rmi.*;
import java.text.*;
import javax.servlet.*;
import javax.servlet.http.*;

import shopcart.ejbs.*;
import DebugLog;

public class InventoryServlet extends HttpServlet
implements SingleThreadModel
{
    protected Context ctx;
    protected ShoppingCartHome home;
	protected DebugLog logger;
	protected NumberFormat formatter;
        
	public void init(ServletConfig config) throws ServletException
	{
		super.init(config);
		
		String logServer;
		
		logServer = getInitParameter("logserver");
		
		logger = new DebugLog();
		logger.logTo(logServer);
		
		formatter = NumberFormat.getCurrencyInstance();
		
		findHome();
	}
	
	protected void findHome()
	{		
		try
        {
        	String homeName;
        	
        	homeName = getInitParameter("ShoppingCartHome");
        	
            ctx = new InitialContext();
            
            if(ctx != null)
	        {
                Object ref = ctx.lookup(homeName);
                home = (ShoppingCartHome) PortableRemoteObject.narrow(ref, 
                                            ShoppingCartHome.class);
            }
    	}
    	catch(Exception exp)
    	{
    	    ctx = null;
    	    home = null;
    	}
	}

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {        
	    ShoppingCartItem curItem;
    	Object items[]=null;
    	int i,max=0;
        String cartName;
        ShoppingCart cart=null;
	    PrintWriter out;
        HttpSession session;
          
        //Try to use the remote user login
        cartName = request.getRemoteUser();
    
        if(cartName == null)
        {
        	session = request.getSession(true);
    	
        	if(session != null) cartName = session.getId();
        }
            
        if(home == null) findHome();
        
        //Get the EJB shopping cart
        if((home != null)&&(cartName != null))
        {        	
        	try
            {
                cart = home.create(cartName);
            }
            catch(Exception ex)
            {
                //perhaps home is gone, reset
                home = null;
                ctx = null;
            
                logger.log(ex);
            }
        }
            
        response.setContentType("text/html");
        out = response.getWriter();
    	
    	out.println("");
	    out.println("");
	    out.println("");
	    out.println("Inventory");
	    out.println("");
	    out.println("");
	    out.println("");
	    out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
"); out.println("

Inventory

"); out.println("The online store contains the following items:
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); if(cart != null) items = cart.getInventory(); if(items != null) max = items.length; for(i=0;i"); out.print(""); out.print(""); out.print(""); out.print(""); out.print(""); out.println(""); } out.println("
DescriptionPriceQuantitySalesRevenue From Sales
"); out.print(curItem.desc); out.println(""); out.print(formatter.format(curItem.price)); out.println(""); out.print(curItem.quantity); out.println(""); out.print(curItem.sales); out.println(""); out.print(formatter.format(curItem.price*curItem.sales)); out.println("
"); out.println("
"); out.println("
"); out.println(""); out.println(""); out.close(); } }