【发布时间】:2014-07-05 11:40:15
【问题描述】:
我正在做一个购物项目。我想要做的是存储用户点击“添加到购物车”的产品的产品 ID(pid)
我在所有调用 servlet "Cart.java" 的产品上都有这种 html 代码,以及它们各自的 pID:
Product1: <a href=Cart?product=1>add to cart?</a> //here 1 is the pid
Product2: <a href=Cart?product=2>add to cart?</a> //here 2 is the pid
一个页面有多个产品,不同的产品有不同的页面关联(页面是使用JDBC动态创建的)。
我想要的是用户点击了“添加到购物车”的所有产品,pid 被存储在某个地方(我为此使用 cookie,因为我认为它会起作用......它?) 稍后我应该能够在另一个页面上获取所有这些 PID(当用户单击 “带我到我的购物车” 时),以便我可以从数据库中显示他们的详细信息并询问用户他是否想买。
“带我到我的购物车” 超链接调用另一个 servlet ViewCart:
<a href="ViewCart">Take me to my cart</a>
servlet cart.java 上的 cookie 代码是:
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id=request.getParameter("product").trim();
Cookie ck=new Cookie("pid",id);//creating cookie object
response.addCookie(ck);
RequestDispatcher rd=request.getRequestDispatcher("product.jsp");
rd.include(request, response);
}
“product.jsp”是显示产品的页面。
servlet ViewCart.java 上的代码是:
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
Cookie ck[]=request.getCookies();
for(Cookie i: ck)
{
if(i.getName().equals("pid"))
out.print(ck.toString()+"</br>");
}
RequestDispatcher rd=request.getRequestDispatcher("cart.jsp");
rd.include(request, response);
}
但这不起作用我是初学者,所以不知道我是否做错了。而且我还想在用户注销后立即销毁 cookie 中的值。还告诉我,如果不是 cookie,我还应该使用什么?
我想我把一切都搞砸了。 :(
【问题讨论】:
标签: java servlets cookies shopping-cart