?
Solved

Copying session data into vector in java

Posted on 2008-10-08
5
Medium Priority
?
477 Views
Last Modified: 2013-11-24
Hi All,

I was trying to copy the cart session data into the vector in java. Actually my session holds the object of ShoppingCart class and now I want to hold contents of session to append the new purchase into the session. Can someone plz help me with this. Here is the code snippet...

HttpSession session = (HttpSession) request.getSession();
        ShoppingCart previousItems = (ShoppingCart)session.getAttribute("cart");
        PrintWriter out=response.getWriter();
        if(previousItems==null)
        {
              previousItems = new ShoppingCart();
              previousItems = (ShoppingCart)session.getAttribute("temp_cart");
              session.setAttribute("cart", previousItems);
        }
        else
        {
              Vector items = (Vector)session.getAttribute("cart");
              out.println(items.capacity());
              out.println(items.size());
        }
        out.println("pid" + previousItems.getProd_id());
        out.println("qty" + previousItems.getQuantity());
        out.println("price" + previousItems.getPrice());
        out.println("category" + previousItems.getCategory());
        out.println("Description" + previousItems.getDescription());
        out.println("<br>");
0
Comment
Question by:RohitGupta2008
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 6

Expert Comment

by:wwnosal
ID: 22672623
Hi,
I think your problem is that you're trying to cast something that is not a Vector to a Vector.

So your code should look like the one in a snippet.
Please consider storing a vector back into session in your else clause so it is persistent (of course then first part of the if should be modified as well)


HttpSession session = (HttpSession) request.getSession();
        ShoppingCart previousItems = (ShoppingCart)session.getAttribute("cart");
        PrintWriter out=response.getWriter();
        if(previousItems==null)
        {
              previousItems = new ShoppingCart();
              previousItems = (ShoppingCart)session.getAttribute("temp_cart");
              session.setAttribute("cart", previousItems);
        }
        else
        {
              Vector items = new Vector();
              items.add(session.getAttribute("cart"));
              out.println(items.capacity());
              out.println(items.size());
        }
        out.println("pid" + previousItems.getProd_id());
        out.println("qty" + previousItems.getQuantity());
        out.println("price" + previousItems.getPrice());
        out.println("category" + previousItems.getCategory());
        out.println("Description" + previousItems.getDescription());
        out.println("<br>");

Open in new window

0
 
LVL 6

Expert Comment

by:wwnosal
ID: 22672644
One more thing: if your previousItems is null you will have a lot of NullPointerException in all of your prints at the end.
0
 

Author Comment

by:RohitGupta2008
ID: 22675396
I tried to do this. But I got warning saying
"Type safety: The method add(Object) belongs to the raw type Vector. References to generic type
 Vector<E> should be parameterized"

then wt i did is, parametrized the Vector and the warning gone but problem is still the same. I am getting the first product I add into the cart but unable to hold the cart contents smwhere so that I can append the whole (old+new) into the session. Here is wt i did again.



HttpSession session = (HttpSession) request.getSession();
        ShoppingCart previousItems = (ShoppingCart)session.getAttribute("cart");
        PrintWriter out=response.getWriter();
        if(previousItems==null)
        {
        	previousItems = new ShoppingCart();
        	previousItems = (ShoppingCart)session.getAttribute("temp_cart");
        	session.setAttribute("cart", previousItems);
        	out.println("pid" + previousItems.getProd_id());
            out.println("qty" + previousItems.getQuantity());
            out.println("price" + previousItems.getPrice());
            out.println("category" + previousItems.getCategory());
            out.println("Description" + previousItems.getDescription());
            out.println("<br>");
        }
        else
        {
        	Vector<ShoppingCart> items = new Vector<ShoppingCart>();
        	items.add((ShoppingCart)session.getAttribute("cart"));
        	out.println("capacity" + items.capacity());
        	out.println("size" + items.size());
        	out.println("Session copying started");
        	items.add((ShoppingCart)session.getAttribute("temp_cart"));
        	out.println("Session copied successfully");        	
        }
        

Open in new window

0
 
LVL 2

Accepted Solution

by:
phuphax earned 2000 total points
ID: 22675675
Why don't you just keep Vector Object in session?
        HttpSession session = (HttpSession) request.getSession();
        Vector items = (Vector)session.getAttribute("cart");
        PrintWriter out=response.getWriter();
        if(items==null)
        {
              items = new Vector();
              session.setAttribute("cart", items);
        }
        out.println(items.capacity());
        out.println(items.size());
        for(int i=0;i<items.size();i++){
                ShoppingCart previousItems=(ShoppingCart)items.elmentAt(i);
                out.println("pid" + previousItems.getProd_id());
                out.println("qty" + previousItems.getQuantity());
                out.println("price" + previousItems.getPrice());
                out.println("category" + previousItems.getCategory());
                out.println("Description" + previousItems.getDescription());
                out.println("<br>");
        }
 
 
TO INSERT NEW ITEM
 
        HttpSession session = (HttpSession) request.getSession();
        Vector items = (Vector)session.getAttribute("cart");
        PrintWriter out=response.getWriter();
        if(items==null)
        {
              items = new Vector();
              session.setAttribute("cart", items);
        }
        ShoppingCart NEWITEM=......;
        items.addElement(NEWITEM);

Open in new window

0
 

Author Comment

by:RohitGupta2008
ID: 22676007
Thanks a lot to all who helped me to get out of the problem...last comment really works for me...thanks again
0

Featured Post

Learn by Doing. Anytime. Anywhere.

Do you like to learn by doing?
Our labs and exercises give you the chance to do just that: Learn by performing actions on real environments.

Hands-on, scenario-based labs give you experience on real environments provided by us so you don't have to worry about breaking anything.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
Suggested Courses
Course of the Month11 days, 18 hours left to enroll

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question