簡體   English   中英

用戶刷新頁面時,如何防止購物車商品增加?

[英]How can I prevent the shopping cart item from incrementing when the user refresh the page?

我使用servlet和jsp制作了購物車,但是當我刷新cart頁面時,我面臨的問題是增加購物車項目的數量。 實際上,我所做的就是每當用戶單擊某些產品(如addtocart.jsp?id=3上的“添加到購物車”按鈕,然后根據ID從數據庫中提取產品時,在URL中傳遞特定product 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. 使用POST方法而不是GET提交表單
  2. 處理過帳請求后,重定向回購物車頁面。

發布/重定向/獲取流程 https://en.wikipedia.org/wiki/Post/Redirect/Get

這里有一些防止這種情況發生的可能性。

  1. 將表單方法更改為POST,以便瀏覽器詢問用戶是否要重新提交表單(如果有的話)
  2. 接受后重定向表格

看一下這個問題的答案如何避免刷新時在jsp中重新提交?

查看經過編輯的代碼后,我建議添加代碼以在處理完會話變量后將其刪除,或者僅使用隱藏形式並使用輸入標簽傳遞參數

看你的代碼

  <a href="addToCart.jsp?id=<%=id%>">

采用

        var url="addtocart.jsp";
        url +="?id=" +value;

並將網址作為GET方法傳遞

要么

<a href="addToCart.jsp?id="<%=id%>>

不解決然后跟隨

如何在沒有提交按鈕的情況下將值從一個jsp頁面傳遞到另一個jsp?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM