2016-07-15 8 views
1

サーブレットとJSPを使用してショッピングカートを作ったが、cartページをリフレッシュするたびにカートアイテムの数量を増やす問題に直面している。実際には私がやっているのは、のような製品の「カートに追加」ボタンをクリックした後、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>  
+0

フォームメソッドのGETまたはPOSTですか? –

+0

そのGETリクエスト。 –

+0

これをPOSTリクエストにします。 – EJP

答えて

0

これを防ぐためにいくつかの可能性があります。

  1. 変更POSTのフォームメソッド、彼らは彼らがこれまで
  2. それは

を受け入れた後を見てください、フォームのリダイレクトを更新する場合は、フォームを再送信したい場合は、ブラウザは、ユーザーに尋ねるように、この質問に対する回答How to avoid resubmit in jsp when refresh?

編集したコードを見てから、セッション変数を処理した後に削除するコードを追加するか、隠しフォームを使用して入力タグを使用してパラメータを渡すことをお勧めします

+0

私はフォームを使用していません、それはaddtocart.jspへの単なるリンクです –

+0

あなたのコードの一部を投稿できますか? –

+0

が更新されましたPlsは見て –

2

使用ポスト/リダイレクト/取得パターン:

  1. は、POSTメソッドでフォームを送信代わりに
  2. は、POSTリクエストを処理した後、バックカートページへのリダイレクトGET。

Post/Redirect/Get flow https://en.wikipedia.org/wiki/Post/Redirect/Get

関連する問題