您好我正在尝试在我的 Web 应用程序中实现添加到购物车机制。所以这就是为什么我临时创建了 3 个实现这种机制的 JSP 页面。但它不能正常工作。
我还创建了唯一的会话来识别特定的用户会话,但它实际上并没有在所有页面中实现。
以下是我的代码:
测试.jsp
<%
Random rkey = new Random();
int randomkey = Math.abs(rkey.nextInt());
String sdata = "keyur"+randomkey;
DateFormat dateFormat = new SimpleDateFormat("HHmmss");
Calendar cal = Calendar.getInstance();
String sess = "keyur"+randomkey+dateFormat.format(cal.getTime());
session.setAttribute("KEYUR", sess);
%>
<% response.sendRedirect("test1.jsp"); %>
test1.jsp
Hello <%= session.getAttribute("KEYUR")%>
<%
String a="shirt",b="jeans";
int a1 = 10,b1=20;
Double a2=100.00,b2=200.00;
%>
<br><br>
A : <a href="test2.jsp?item=<%=a%>&qty=<%=a1%>&price=<%=a2%>" id="a1" name="a1">Add To Cart</a><br><br>
A1 : <a href="test2.jsp?item=<%=b%>&qty=<%=b1%>&price=<%=b2%>" id="a2" name="a2">Add To Cart</a>
test2.jsp
Hello <%= session.getAttribute("KEYUR")%><br><br><br><br>
Your Cart :
<%
List<String> pname = new ArrayList<String>();
List<Integer> pqty = new ArrayList<Integer>();
List<Double> ppr = new ArrayList<Double>();
%>
<%
pname.add(request.getParameter("item"));
pqty.add(Integer.parseInt(request.getParameter("qty")));
ppr.add(Double.parseDouble(request.getParameter("price")));
Double total=0.00;
%>
<br><br>
<%
for(int i = 0;i < pname.size();i++)
{
String name = pname.get(i);
Integer qty1 = pqty.get(i);
Double pr1 = ppr.get(i);
%>
Name : <%= name %><br>
Qty : <%= qty1 %><br>
Price : <%= pr1 %><br><br>
Total : <%= total += qty1*pr1 %>
<%
}
%>
现在我已经获取了静态数据,如果它可以工作,那么我将尝试使用动态数据。有人告诉我为什么购物车中只显示一件商品。假设用户点击添加到购物车然后它重定向到 test2.jsp 并再次返回到 test1.jsp 然后点击第二个添加到购物车然后购物车应该被附加而不是覆盖。但目前它正在覆盖。
任何建议请...