Solved

Copying session data into vector in java

Posted on 2008-10-08
5
425 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
  • 2
  • 2
5 Comments
 
LVL 6

Expert Comment

by:wwnosal
Comment Utility
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
Comment Utility
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
Comment Utility
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 500 total points
Comment Utility
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
Comment Utility
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

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

744 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now