protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
        //AuctionSearchClient is the class given by sunflower that has project3 funcionality given to us
		AuctionSearchClient searcher = new AuctionSearchClient();
        //get the xml as a string
		String xml = searcher.getXMLDataForItemId(request.getParameter("id"));
        //if the passed id doesn't exist, fail gracefully
        if (xml == "") {
            request.setAttribute("id", request.getParameter("id"));
            request.getRequestDispatcher("/ItemError.jsp").forward(request, response);
        }
        //passing the actual page with item information
        else {
            //initialize all the classes that need to be used to hold the item information
            MonsterBean result = new MonsterBean();
            User r_user = new User();
            ArrayList <String> r_category = new ArrayList <String>();
            ArrayList <Bid> r_bid = new ArrayList <Bid>();
    		try
    		{
                //use project 2's xml parsing aux functions (refactoring yay)
    			Document doc = loadXMLFromString(xml);
    			Element item = (Element) doc.getFirstChild();
    			setMonsterItemID(result, item);
    			setMonsterName(result, item);
    	        setMonsterCategory(result, item);
    	        setMonsterCurrently(result, item);
    	        setMonsterBuyPrice(result, item);
    	        setMonsterFirstBid(result, item);
    	        setMonsterNumBids(result, item);
    	        setMonsterBids(result, item);
    	        setMonsterStarted(result, item);
    	        setMonsterEnds(result, item);
    	        setMonsterItemUser(result, item);
    	        setMonsterDesc(result, item);
    	        r_user = result.getUser();
    	        r_category = result.getCategoryList();
    	        r_bid = result.getBidList();
    		}
    		catch (Exception e)
    		{
    			e.printStackTrace();
    		}

            //set all the attributes from the bean to the .jsp sections
    		request.setAttribute("title", "Item Information for "+result.getItemID());
            
    		request.setAttribute("itemID", result.getItemID());
    		request.setAttribute("name", result.getName());
    		
    		String buyPriceFormatted = "";
    		String itemList = "";
    		if (!result.getBuyPrice().equals("NULL"))
    		{
				// Set some HTTP session attributes so we don't have to spam
				// sunflower
				HttpSession session = request.getSession(true);
				itemList = (String) session.getAttribute("itemList");
				if (itemList == null)
				{
					itemList = result.getItemID() + ":" + result.getName() + "~~|}" + result.getBuyPrice() + "{|~~";
				}
				else if (itemList.contains(result.getItemID()))
				{
					// do nothing
				}
				else
				{
					itemList += result.getItemID() + ":" + result.getName() + "~~|}" + result.getBuyPrice() + "{|~~";
				}
				session.setAttribute("itemList", itemList);
    			//session.setAttribute("itemID", result.getItemID());
    			//session.setAttribute("itemName", result.getName());
    			//session.setAttribute("buyPrice", result.getBuyPrice());
    			
    			// Display buy price and link to buy the item
    			buyPriceFormatted += result.getBuyPrice();
    			buyPriceFormatted += "   <a href=\"./pay?id=" + result.getItemID() + "\">Buy Now</a>";
    		}
    		else
    		{
    			// Display N/A
    			buyPriceFormatted = "None";
    		}
    		
    		request.setAttribute("buy_price", buyPriceFormatted);
    		
            //buildCategoryHTML takes the category bean and spits out the list of categories in HTML form
    		request.setAttribute("category", buildCategoryHTML(r_category));
    		request.setAttribute("currently", result.getCurrently());
    		request.setAttribute("first_bid", result.getFirstBid());
    		request.setAttribute("num_bids", result.getNumBids());
    		
            //buildBidHTML does the same thing as category aux function but with arraylist of bid beans
    		request.setAttribute("bid", buildBidHTML(r_bid));
    		request.setAttribute("location", r_user.getLocation());
    		request.setAttribute("country", r_user.getCountry());
    		request.setAttribute("started", result.getStarted());
    		request.setAttribute("ends", result.getEnds());
    		request.setAttribute("sellerID", r_user.getUserID());
    		request.setAttribute("rating", r_user.getRating());
    		request.setAttribute("description", result.getDesc());

    		request.getRequestDispatcher("/ItemInfo.jsp").forward(request, response); 
        }
	}