当前位置: 首页 > 知识库问答 >
问题:

当用户刷新页面时,如何防止购物车项目增加?

窦宏旷
2023-03-14

我使用servlet和jsp制作了一个购物车,但我面临一个问题,即每当我刷新cart页面时,购物车项目的数量就会增加。实际上,我所做的是在url中传递特定的产品id,只要用户在某些产品上单击add to cart按钮,就像AddToCart.jsp?id=3,然后根据id从数据库中提取产品并将其添加到购物车中,但是当我刷新这个url AddToCart?id=3时,这个页面中的整个过程再次运行,每次刷新时都会增加产品数量。我该如何解决这个问题。有什么建议吗?

product.jsp

<%
 String id = request.getParameter("id");
 Connection con = ConnectionManager.getConnection();
 PreparedStatement ps = con.prepareStatement("Select * from products inner join images using(product_name) "
         + "where product_id=?");
 ps.setString(1,id);
 ResultSet rs= ps.executeQuery();
 rs.next();

 String name = rs.getString("product_name");
 String image = rs.getString("image_name");
 String company = rs.getString("company_name");
 String category =  rs.getString("category_name");
 String sub = rs.getString("sub_category_name");
 double price = rs.getDouble("price");
 String summary = rs.getString("summary");
 int hits = rs.getInt("hits");

 //out.println(price);
%>
   <div class="container_16" style="background: #FFF;">
       <div class="grid_16 productHeading">
           <h2 class="heading"><%=name %>- By <%= company %> <%=category%> </h2>
       </div>

       <div class="grid_10">

             <h5>Category: <a href="#" onclick="return false"><%= category %> </a> >
              <a href="#" onclick="return false">  <%= sub %> </a><br/><br/>
              Priced At <span class="Bigred">RS. <%=price %></span> 
             </h5>

             <h2>Summary Of this Item</h2>


                       <div class="grid_5" id="addtocart">
                           <a href="addToCart.jsp?id=<%=id%>">
                              Add To Cart
                           </a>
                           <% if(session.getAttribute("admin")!=null)
                              {
                           %>   
                              <a href="addToCart.jsp?id=<%=id%>">
                              Edit  
                           </a>
                          <%              
                            }
                           %>   
                       </div>

               <br/>

             <h6 class="grey">Summary of <%= name%></h6>
                    <p class="info">
                        <%= summary%>
                    </p>       

       </div>  

       <div class="grid_4" id="pimage">
           <img src="<%= image%>">
       </div>    

  </div>    

共有1个答案

臧曜瑞
2023-03-14

使用POST/REDIRECT/GET模式

  1. 使用POST方法而不是GET
  2. 提交表单
  3. 处理post请求后重定向回购物车页。
 类似资料:
  • 如何在Woocommerce购物车页面中的购物车项目名称后添加产品ID? 我知道我需要先不返回,因为这样会把我从函数中拉出来,但我很好奇我该如何去做这件事。

  • 在我的项目中,我有两页,第一页用于输入数据,第二页用于向用户显示数据。刷新结果页时,数据将被复制。我试图解决这个问题,但我不熟悉PRG模式。如果用户刷新结果页,我希望防止重复。

  • vue刷新页面内存会增长,内存泄漏问题 问题1.每次刷新页面会造成内存泄漏,不做任何操作光刷新也会有内存增长,如果做了一些操作再刷新可能会长得比较厉害。通过使用浏览器开发者排查,发现会增长很多字符串(string)和编译代码(compiled code)还有一些游离节点吧。 问题2. 为什么我用到的字符串显示的路径是依赖包里面的路径啊?比如下图: 已经把定时器和组件销毁了,监听了一个刷新事件,每次

  • 问题内容: 我有上面的代码。 如果我在cart_item上运行print_r,我将得到一个多维数组: 我如何只获得product_id? 我试过$ test = 没用 问题答案: 要获取 foreach循环中的每个购物车商品(对于简单产品): 如果是可变产品,请获取 : 或在两种情况下 ( Woocommerce 3+中 的 Object在哪里) : 更新: 循环外使用产品ID 1)打破循环 (仅

  • 我有一个订单按钮应该是重定向用户到购物车页面与订购的项目 这是web.php路线 这是addToCart函数 但是当我点击按钮时,它不会重定向到购物车页面,它会一直加载到同一个位置。 我尝试使用在addToCart函数上转储变量,它输出正确的结果

  • 问题内容: 我有一个简单的表单,可将​​文本提交到SQL表。问题在于,用户提交文本后,他们可以刷新页面,并且无需再次填写表单即可再次提交数据。提交文本后,我可以将用户重定向到另一个页面,但是我希望用户停留在同一页面上。 我记得读过一些有关为每个用户提供唯一的会话ID并将其与另一个值进行比较的信息,这些值解决了我遇到的问题,但我忘记了它在哪里。 问题答案: 使用发布/重定向/获取模式。 在我的网站上