Session

0 respostas
L

Sou iniciante e estou apanhando um pouco em relação à session....
É o seguinte:

tenho duas classes que adicionam itens numa espécie de carrinho de compras, só que só funciona local, quando o cliente acessa, ele não acumula itens...acho que estou lidando com session erradamente....
Segue abaixo as duas classes:

package leo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.util.*;

public class AddToShoppingCartServlet extends HttpServlet {
	public void service(
		HttpServletRequest request,
		HttpServletResponse response)
		throws IOException, ServletException {
		try {

			response.setContentType("text/html");
			String NomeRed = request.getParameter("NomeRed");
			String Descr = request.getParameter("Descr");
			double CustoDesejado =
				Double.parseDouble(request.getParameter("CustoDesejado"));
			int qtd_pro = Integer.parseInt(request.getParameter("qtd_pro"));
			String usuario3 = request.getParameter("usuario3");
			double total = CustoDesejado * qtd_pro;

			Item item = new Item(NomeRed, Descr, CustoDesejado, qtd_pro, total);

			HttpSession session = request.getSession();

			ShoppingCart cart =
				(ShoppingCart) session.getAttribute("ShoppingCart");

			if (cart == null) {
				cart = new ShoppingCart();
				session.setAttribute("ShoppingCart", cart);
			}

			cart.addItem(item);

			response.sendRedirect(
				response.encodeRedirectURL(
					"http://.......:8080/examples/jsp/E-commerce/site/DisplayShoppingCart.jsp?usuario3="
						+ usuario3));
		} catch (Exception e) {
		}

	}
}
package leo;

import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;

public class ShoppingCart implements java.io.Serializable {

	Vector items;

	static int nextOrderNumber = 1;

	public ShoppingCart() {
		items = new Vector();
	}

	public Vector getItems() {
		return (Vector) items.clone();
	}

	public void addItem(Item newItem) {
		items.addElement(newItem);
	}

	public void removeItem(int itemIndex) {
		items.removeElementAt(itemIndex);
	}

	public String completeOrder(Shipping shipping, Billing billing) {

		try {
			int orderNumber = 0;

			synchronized (this) {
				orderNumber = nextOrderNumber;
				nextOrderNumber = nextOrderNumber + 1;
			}

			PrintWriter out =
				new PrintWriter(
					new FileOutputStream("c:/compra" + orderNumber));

			out.println(shipping.name);
			out.println(shipping.address1);

			if (shipping.address2 != null) {
				out.println(shipping.address2);
			}

			out.print(shipping.city);

			if (shipping.state != null) {
				out.print(", " + shipping.state);
			}

			if (shipping.postalCode != null) {
				out.print(" " + shipping.postalCode);
			}

			out.println(" " + shipping.country);
			out.println(shipping.email);

			out.println(billing.nameOnCard);
			out.println(billing.creditCardType);
			out.println(billing.creditCardNumber);
			out.println(billing.creditCardExpiration);

			Enumeration e = items.elements();

			while (e.hasMoreElements()) {
				Item item = (Item) e.nextElement();

				out.println(item.NomeRed + "," + item.qtd_pro);
			}

			out.close();

			return "" + orderNumber;
		} catch (Exception exc) {
			System.out.println("" + exc.toString());
		}

		return "erro";
	}
}

POR FAVOR ME AJUDEM!!!

Criado 9 de setembro de 2003
Respostas 0
Participantes 1