Java 当用户刷新页面时,如何防止购物车项目增加?
我使用servlet和jsp制作了一个购物车,但我遇到了一个问题,每当我刷新Java 当用户刷新页面时,如何防止购物车项目增加?,java,jsp,servlets,Java,Jsp,Servlets,我使用servlet和jsp制作了一个购物车,但我遇到了一个问题,每当我刷新cart页面时,购物车项目的数量就会增加。实际上,我正在做的是,每当用户单击某个产品上的“添加到购物车”按钮时,在url中传递特定的产品ID,就像addtocart.jsp?ID=3一样,然后根据ID从数据库中提取产品并将其添加到购物车中,但当我刷新此urladdtocart?ID=3时此页面中的整个过程将再次运行,每次刷新时都会增加产品数量。 我怎样才能解决这个问题。有什么建议吗 product.jsp <%
cart
页面时,购物车项目的数量就会增加。实际上,我正在做的是,每当用户单击某个产品上的“添加到购物车”按钮时,在url中传递特定的产品ID
,就像addtocart.jsp?ID=3
一样,然后根据ID从数据库中提取产品并将其添加到购物车中,但当我刷新此urladdtocart?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>
-借
类别:>
价格为卢比。
本项目摘要
总结
">
以下是一些防止这种情况发生的可能性
<a href="addToCart.jsp?id=<%=id%>">
并将url作为GET方法传递
或
使用Post/Redirect/Get模式:
使用POST方法而不是GET方法提交表单
处理post请求后重定向回购物车页面
您的表单方法是GET还是POST?这是一个GET请求。因此,将其设置为POST请求。搜索购物车以查看提交的ID是否已经存在,然后什么也不做?但我没有使用表单,它只是指向addtocart.jsp的简单链接。我可以不使用表单和隐藏参数来执行此操作吗?让我直截了当地说,每次客户向电子购物车,他们被重定向到一个新页面?是的,他们被重定向到addtocart.jsp,ID看起来不正确。无论如何,看看我编辑的答案
var url="addtocart.jsp";
url +="?id=" +value;
<a href="addToCart.jsp?id="<%=id%>>