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:
[code]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) {
}
}
}[/code]
[code]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";
}
}
[/code]
POR FAVOR ME AJUDEM!!!